From 9430d1bbbe9e4585d4b91ab3172e0abc679f0d25 Mon Sep 17 00:00:00 2001
From: Oliver <oliver.henry.walters@gmail.com>
Date: Sun, 29 May 2022 17:46:29 +1000
Subject: [PATCH] L10 crowdin (#3095)

* updated translation base

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
 InvenTree/locale/cs/LC_MESSAGES/django.po    | 1696 ++++++++---------
 InvenTree/locale/de/LC_MESSAGES/django.po    | 1730 +++++++++---------
 InvenTree/locale/el/LC_MESSAGES/django.po    | 1696 ++++++++---------
 InvenTree/locale/en/LC_MESSAGES/django.po    |  819 +++++----
 InvenTree/locale/es/LC_MESSAGES/django.po    | 1696 ++++++++---------
 InvenTree/locale/es_MX/LC_MESSAGES/django.po |  819 +++++----
 InvenTree/locale/fa/LC_MESSAGES/django.po    | 1696 ++++++++---------
 InvenTree/locale/fr/LC_MESSAGES/django.po    | 1696 ++++++++---------
 InvenTree/locale/he/LC_MESSAGES/django.po    | 1696 ++++++++---------
 InvenTree/locale/hu/LC_MESSAGES/django.po    | 1700 ++++++++---------
 InvenTree/locale/id/LC_MESSAGES/django.po    | 1696 ++++++++---------
 InvenTree/locale/it/LC_MESSAGES/django.po    | 1696 ++++++++---------
 InvenTree/locale/ja/LC_MESSAGES/django.po    | 1696 ++++++++---------
 InvenTree/locale/ko/LC_MESSAGES/django.po    | 1696 ++++++++---------
 InvenTree/locale/nl/LC_MESSAGES/django.po    | 1704 ++++++++---------
 InvenTree/locale/no/LC_MESSAGES/django.po    | 1696 ++++++++---------
 InvenTree/locale/pl/LC_MESSAGES/django.po    | 1696 ++++++++---------
 InvenTree/locale/pt/LC_MESSAGES/django.po    | 1696 ++++++++---------
 InvenTree/locale/pt_br/LC_MESSAGES/django.po |  819 +++++----
 InvenTree/locale/ru/LC_MESSAGES/django.po    | 1698 ++++++++---------
 InvenTree/locale/sv/LC_MESSAGES/django.po    | 1696 ++++++++---------
 InvenTree/locale/th/LC_MESSAGES/django.po    | 1696 ++++++++---------
 InvenTree/locale/tr/LC_MESSAGES/django.po    | 1696 ++++++++---------
 InvenTree/locale/vi/LC_MESSAGES/django.po    | 1696 ++++++++---------
 InvenTree/locale/zh/LC_MESSAGES/django.po    | 1698 ++++++++---------
 25 files changed, 20158 insertions(+), 19661 deletions(-)

diff --git a/InvenTree/locale/cs/LC_MESSAGES/django.po b/InvenTree/locale/cs/LC_MESSAGES/django.po
index b510bb9623..f1cc7a1da1 100644
--- a/InvenTree/locale/cs/LC_MESSAGES/django.po
+++ b/InvenTree/locale/cs/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
-"PO-Revision-Date: 2022-05-24 01:43\n"
+"POT-Creation-Date: 2022-05-28 23:41+0000\n"
+"PO-Revision-Date: 2022-05-29 01:47\n"
 "Last-Translator: \n"
 "Language-Team: Czech\n"
 "Language: cs_CZ\n"
@@ -21,7 +21,7 @@ msgstr ""
 msgid "API endpoint not found"
 msgstr "API endpoint nebyl nalezen"
 
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
 msgid "Error details can be found in the admin panel"
 msgstr ""
 
@@ -30,7 +30,7 @@ msgid "Enter date"
 msgstr "Zadejte datum"
 
 #: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
 msgid "Confirm"
 msgstr "Potvrdit"
 
@@ -79,7 +79,7 @@ msgstr "Pokaždé musíte zadat stejný email."
 msgid "Duplicate serial: {sn}"
 msgstr "Duplicitní výrobní číslo: {sn}"
 
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
 msgid "Invalid quantity provided"
 msgstr "Vyplněno neplatné množství"
 
@@ -134,10 +134,12 @@ msgid "Select file to attach"
 msgstr "Vyberte soubor k přiložení"
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:139 order/models.py:1273
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr "Odkaz"
 
@@ -159,7 +161,7 @@ msgstr "Komentář k souboru"
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2513
 msgid "User"
 msgstr "Uživatel"
 
@@ -205,9 +207,10 @@ msgstr "Neplatný výběr"
 #: templates/InvenTree/settings/plugin.html:132
 #: templates/InvenTree/settings/plugin_settings.html:23
 #: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2283
 msgid "Name"
 msgstr "Název"
 
@@ -216,22 +219,22 @@ msgstr "Název"
 #: company/models.py:575 company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
 #: part/templates/part/part_base.html:167
 #: part/templates/part/set_category.html:14 report/models.py:182
 #: report/models.py:547 report/models.py:586
 #: report/templates/report/inventree_build_order_base.html:118
 #: stock/templates/stock/location.html:103
 #: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
 msgid "Description"
 msgstr "Popis"
 
@@ -406,7 +409,7 @@ msgid "InvenTree system health checks failed"
 msgstr "Kontroly zdraví systému InvenTree selhaly"
 
 #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
 msgid "Pending"
 msgstr "Nevyřízeno"
 
@@ -414,141 +417,145 @@ msgstr "Nevyřízeno"
 msgid "Placed"
 msgstr "Umístěno"
 
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
 #: order/templates/order/order_base.html:134
 #: order/templates/order/sales_order_base.html:133
 msgid "Complete"
 msgstr "Hotovo"
 
 #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
 msgid "Cancelled"
 msgstr "Zrušeno"
 
 #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
 msgid "Lost"
 msgstr "Ztraceno"
 
 #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
 msgid "Returned"
 msgstr "Vráceno"
 
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
 msgid "Shipped"
 msgstr "Odesláno"
 
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
 msgid "OK"
 msgstr ""
 
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
 msgid "Attention needed"
 msgstr "Vyžaduje pozornost"
 
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
 msgid "Damaged"
 msgstr "Poškozeno"
 
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
 msgid "Destroyed"
 msgstr "Zničeno"
 
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
 msgid "Rejected"
 msgstr "Odmítnuto"
 
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
 msgid "Legacy stock tracking entry"
 msgstr "Původní položka sledování zásob"
 
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
 msgid "Stock item created"
 msgstr "Položka zásob vytvořena"
 
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
 msgid "Edited stock item"
 msgstr "Položka zásob upravena"
 
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
 msgid "Assigned serial number"
 msgstr "Přiřazeno výrobní číslo"
 
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
 msgid "Stock counted"
 msgstr "Stav zásob sečten"
 
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
 msgid "Stock manually added"
 msgstr "Zásoba přidána ručně"
 
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
 msgid "Stock manually removed"
 msgstr "Zásoba odebrána ručně"
 
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
 msgid "Location changed"
 msgstr "Umístění změněno"
 
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
 msgid "Installed into assembly"
 msgstr ""
 
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
 msgid "Removed from assembly"
 msgstr ""
 
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
 msgid "Installed component item"
 msgstr ""
 
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
 msgid "Removed component item"
 msgstr ""
 
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
 msgid "Split from parent item"
 msgstr ""
 
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
 msgid "Merged stock items"
 msgstr ""
 
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
 msgid "Converted to variant"
 msgstr ""
 
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
 msgid "Sent to customer"
 msgstr ""
 
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
 msgid "Returned from customer"
 msgstr ""
 
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
 msgid "Build order output created"
 msgstr ""
 
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
 msgid "Build order output completed"
 msgstr ""
 
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
 msgid "Consumed by build order"
 msgstr ""
 
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
 msgid "Received against purchase order"
 msgstr ""
 
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
 msgid "Production"
 msgstr ""
 
@@ -637,15 +644,15 @@ msgstr ""
 msgid "Build Order Reference"
 msgstr ""
 
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
 #: part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
 msgid "Reference"
 msgstr ""
 
@@ -664,7 +671,7 @@ msgstr ""
 
 #: build/models.py:225 build/templates/build/build_base.html:77
 #: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
 #: part/models.py:2303 part/models.py:2319 part/models.py:2338
 #: part/models.py:2355 part/models.py:2457 part/models.py:2579
 #: part/models.py:2669 part/models.py:2760 part/models.py:3050
@@ -679,19 +686,21 @@ msgstr ""
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
 #: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
 msgid "Part"
 msgstr ""
 
@@ -708,7 +717,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr ""
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
 msgid "Source Location"
 msgstr ""
 
@@ -749,7 +758,7 @@ msgid "Build status code"
 msgstr ""
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr ""
 
@@ -757,12 +766,12 @@ msgstr ""
 msgid "Batch code for this build output"
 msgstr ""
 
-#: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
 msgid "Creation Date"
 msgstr ""
 
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
 msgid "Target completion date"
 msgstr ""
 
@@ -770,8 +779,8 @@ msgstr ""
 msgid "Target date for build completion. Build will be overdue after this date."
 msgstr ""
 
-#: build/models.py:300 order/models.py:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
 msgid "Completion Date"
 msgstr ""
 
@@ -779,7 +788,7 @@ msgstr ""
 msgid "completed by"
 msgstr ""
 
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
 msgid "Issued by"
 msgstr ""
 
@@ -788,11 +797,11 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
 msgid "Responsible"
 msgstr ""
 
@@ -804,14 +813,14 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr ""
 
 #: build/models.py:334 build/serializers.py:390
 #: build/templates/build/sidebar.html:21 company/models.py:134
 #: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
 #: order/templates/order/po_sidebar.html:11
 #: order/templates/order/so_sidebar.html:17 part/models.py:983
 #: part/templates/part/part_sidebar.html:59
@@ -820,11 +829,11 @@ msgstr ""
 #: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
 msgid "Notes"
 msgstr ""
 
@@ -857,7 +866,7 @@ msgstr ""
 msgid "Stock item is over-allocated"
 msgstr ""
 
-#: build/models.py:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1413
 msgid "Allocation quantity must be greater than zero"
 msgstr ""
 
@@ -869,8 +878,8 @@ msgstr ""
 msgid "Selected stock item not found in BOM"
 msgstr ""
 
-#: build/models.py:1375 stock/templates/stock/item_base.html:335
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
 #: templates/navbar.html:38
 msgid "Build"
 msgstr ""
@@ -879,18 +888,18 @@ msgstr ""
 msgid "Build to allocate parts"
 msgstr ""
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2449
 msgid "Stock Item"
 msgstr ""
 
@@ -902,10 +911,10 @@ msgstr ""
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_build_order_base.html:114
@@ -913,25 +922,24 @@ 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
 msgid "Quantity"
 msgstr ""
 
@@ -948,7 +956,7 @@ msgid "Destination stock item"
 msgstr ""
 
 #: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
 msgid "Build Output"
 msgstr ""
 
@@ -972,7 +980,7 @@ msgstr ""
 msgid "Enter quantity for build output"
 msgstr ""
 
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
 #: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
 #: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
 #: stock/serializers.py:294
@@ -987,8 +995,8 @@ msgstr ""
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr ""
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr ""
@@ -1015,15 +1023,15 @@ msgstr ""
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
 msgid "Location"
 msgstr ""
 
@@ -1032,12 +1040,12 @@ msgid "Location for completed build outputs"
 msgstr ""
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: build/templates/build/detail.html:62 order/models.py:663
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
 msgid "Status"
 msgstr ""
 
@@ -1118,7 +1126,7 @@ msgstr ""
 msgid "Item must be in stock"
 msgstr ""
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr ""
@@ -1135,7 +1143,7 @@ msgstr ""
 msgid "This stock item has already been allocated to this build output"
 msgstr ""
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr ""
 
@@ -1233,13 +1241,13 @@ msgid "Stock has not been fully allocated to this Build Order"
 msgstr ""
 
 #: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr ""
 
@@ -1266,14 +1274,14 @@ msgid "Completed"
 msgstr ""
 
 #: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2436
 msgid "Sales Order"
 msgstr ""
 
@@ -1308,8 +1316,8 @@ msgstr ""
 msgid "Stock can be taken from any available location."
 msgstr ""
 
-#: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
 msgid "Destination"
 msgstr ""
 
@@ -1322,11 +1330,11 @@ msgid "Allocated Parts"
 msgstr ""
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
-#: templates/js/translated/build.js:1184
+#: stock/templates/stock/item_base.html:170
+#: templates/js/translated/build.js:1179
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1335,7 +1343,7 @@ msgstr ""
 #: build/templates/build/detail.html:126
 #: order/templates/order/order_base.html:149
 #: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
 msgid "Created"
 msgstr ""
 
@@ -1355,7 +1363,7 @@ msgstr ""
 msgid "Allocate Stock to Build"
 msgstr ""
 
-#: build/templates/build/detail.html:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
 msgid "Unallocate stock"
 msgstr ""
 
@@ -1385,8 +1393,8 @@ msgstr ""
 
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: company/templates/company/detail.html:85
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr ""
 
@@ -1461,8 +1469,8 @@ msgid "Completed Build Outputs"
 msgstr ""
 
 #: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
 #: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:82
 #: order/templates/order/sales_order_detail.html:129
@@ -1476,11 +1484,11 @@ msgstr ""
 msgid "Build Notes"
 msgstr ""
 
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
 msgid "Allocation Complete"
 msgstr ""
 
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
@@ -1492,18 +1500,6 @@ msgstr ""
 msgid "Print Build Orders"
 msgstr ""
 
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr ""
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr ""
-
 #: build/templates/build/sidebar.html:5
 msgid "Build Order Details"
 msgstr ""
@@ -1727,7 +1723,7 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
 #: templates/js/translated/table_filters.js:168
 #: templates/js/translated/table_filters.js:460
 msgid "Assembly"
@@ -2413,7 +2409,7 @@ msgid "Price break quantity"
 msgstr ""
 
 #: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: company/templates/company/supplier_part.html:263 order/models.py:975
 #: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
 msgid "Price"
 msgstr ""
@@ -2556,7 +2552,7 @@ msgstr ""
 
 #: company/models.py:104 company/templates/company/company_base.html:100
 #: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
 msgid "Website"
 msgstr ""
 
@@ -2651,10 +2647,11 @@ msgstr ""
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: stock/templates/stock/item_base.html:212
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
 #: templates/js/translated/table_filters.js:411
 msgid "Manufacturer"
 msgstr ""
@@ -2665,8 +2662,10 @@ msgstr ""
 
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr ""
@@ -2686,7 +2685,7 @@ msgstr ""
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr ""
 
@@ -2696,8 +2695,9 @@ msgstr ""
 
 #: company/models.py:427
 #: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
 msgid "Value"
 msgstr ""
 
@@ -2708,7 +2708,7 @@ msgstr ""
 #: company/models.py:434 part/models.py:940 part/models.py:2549
 #: part/templates/part/part_base.html:280
 #: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
 msgid "Units"
 msgstr ""
 
@@ -2721,11 +2721,12 @@ msgid "Linked manufacturer part must reference the same base part"
 msgstr ""
 
 #: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: stock/templates/stock/item_base.html:229
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2736,8 +2737,9 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
 msgid "SKU"
 msgstr ""
 
@@ -2773,8 +2775,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr ""
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
 msgid "Packaging"
 msgstr ""
 
@@ -2804,12 +2806,12 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
 msgid "Company"
 msgstr ""
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr ""
 
@@ -2822,7 +2824,7 @@ msgid "Edit company information"
 msgstr ""
 
 #: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
 msgid "Edit Company"
 msgstr ""
 
@@ -2845,12 +2847,12 @@ msgstr ""
 msgid "Download image from URL"
 msgstr ""
 
-#: company/templates/company/company_base.html:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr ""
@@ -2869,7 +2871,7 @@ msgid "Upload Image"
 msgstr ""
 
 #: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
+#: company/templates/company/manufacturer_part_sidebar.html:7
 #: templates/InvenTree/search.html:118
 msgid "Supplier Parts"
 msgstr ""
@@ -2884,28 +2886,19 @@ msgstr ""
 msgid "New Supplier Part"
 msgstr ""
 
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr ""
-
 #: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
 #: part/templates/part/category.html:176
 msgid "Order parts"
 msgstr ""
 
 #: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
 msgid "Delete parts"
 msgstr ""
 
 #: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
 msgid "Delete Parts"
 msgstr ""
 
@@ -2917,88 +2910,76 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
 msgid "New Manufacturer Part"
 msgstr ""
 
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
 msgid "Supplier Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
 #: company/templates/company/sidebar.html:12
 #: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
 #: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:235 templates/navbar.html:50
 #: users/models.py:43
 msgid "Purchase Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
 #: order/templates/order/purchase_orders.html:17
 msgid "Create new purchase order"
 msgstr ""
 
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr ""
 
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
 #: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
 #: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
 #: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:259 templates/navbar.html:61
 #: users/models.py:44
 msgid "Sales Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
 #: order/templates/order/sales_orders.html:20
 msgid "Create new sales order"
 msgstr ""
 
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
 #: order/templates/order/sales_orders.html:21
 msgid "New Sales Order"
 msgstr ""
 
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
 msgid "Assigned Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
 msgid "Company Notes"
 msgstr ""
 
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr ""
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr ""
-
 #: company/templates/company/index.html:8
 msgid "Supplier List"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
 #: templates/navbar.html:49
 msgid "Manufacturers"
 msgstr ""
@@ -3011,12 +2992,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -3032,55 +3013,46 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:119
 #: company/templates/company/supplier_part.html:15 company/views.py:41
 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
 msgid "Suppliers"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
 #: part/templates/part/detail.html:363
 msgid "Delete supplier parts"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
 msgid "Delete"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:164
+#: company/templates/company/manufacturer_part.html:166
 #: company/templates/company/manufacturer_part_sidebar.html:5
 #: part/templates/part/category_sidebar.html:19
 #: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8
 msgid "Parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
 #: part/templates/part/detail.html:184
 #: templates/InvenTree/settings/category.html:12
 #: templates/InvenTree/settings/part.html:66
 msgid "New Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
 msgid "Delete parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
 msgid "Add Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr ""
-
 #: company/templates/company/sidebar.html:6
 msgid "Manufactured Parts"
 msgstr ""
@@ -3099,19 +3071,19 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
 msgid "Delete supplier part"
 msgstr ""
 
@@ -3186,11 +3158,11 @@ msgstr ""
 #: part/templates/part/part_sidebar.html:14
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
 #: templates/InvenTree/settings/sidebar.html:43
 #: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
 #: templates/navbar.html:31
 msgid "Stock"
 msgstr ""
@@ -3216,8 +3188,8 @@ msgstr ""
 #: stock/templates/stock/location.html:161
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
+#: templates/js/translated/stock.js:2307 users/models.py:41
 msgid "Stock Items"
 msgstr ""
 
@@ -3229,7 +3201,7 @@ msgstr ""
 msgid "New Manufacturer"
 msgstr ""
 
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
 #: templates/navbar.html:60
 msgid "Customers"
 msgstr ""
@@ -3238,7 +3210,7 @@ msgstr ""
 msgid "New Customer"
 msgstr ""
 
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:212
 msgid "Companies"
 msgstr ""
 
@@ -3328,305 +3300,313 @@ msgstr ""
 msgid "Part query filters (comma-separated value of key=value pairs)"
 msgstr ""
 
-#: order/models.py:130
+#: order/models.py:137
 msgid "Order description"
 msgstr ""
 
-#: order/models.py:132
+#: order/models.py:139 order/models.py:1274
 msgid "Link to external page"
 msgstr ""
 
-#: order/models.py:140
+#: order/models.py:147
 msgid "Created By"
 msgstr ""
 
-#: order/models.py:147
+#: order/models.py:154
 msgid "User or group responsible for this order"
 msgstr ""
 
-#: order/models.py:152
+#: order/models.py:159
 msgid "Order notes"
 msgstr ""
 
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
 msgid "Order reference"
 msgstr ""
 
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
 msgid "Purchase order status"
 msgstr ""
 
-#: order/models.py:253
+#: order/models.py:311
 msgid "Company from which the items are being ordered"
 msgstr ""
 
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
 msgid "Supplier Reference"
 msgstr ""
 
-#: order/models.py:256
+#: order/models.py:314
 msgid "Supplier order reference code"
 msgstr ""
 
-#: order/models.py:263
+#: order/models.py:321
 msgid "received by"
 msgstr ""
 
-#: order/models.py:268
+#: order/models.py:326
 msgid "Issue Date"
 msgstr ""
 
-#: order/models.py:269
+#: order/models.py:327
 msgid "Date order was issued"
 msgstr ""
 
-#: order/models.py:274
+#: order/models.py:332
 msgid "Target Delivery Date"
 msgstr ""
 
-#: order/models.py:275
+#: order/models.py:333
 msgid "Expected date for order delivery. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:281
+#: order/models.py:339
 msgid "Date order was completed"
 msgstr ""
 
-#: order/models.py:310
+#: order/models.py:368
 msgid "Part supplier must match PO supplier"
 msgstr ""
 
-#: order/models.py:456
+#: order/models.py:514
 msgid "Quantity must be a positive number"
 msgstr ""
 
-#: order/models.py:601
+#: order/models.py:659
 msgid "Company to which the items are being sold"
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer Reference "
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer order reference code"
 msgstr ""
 
-#: order/models.py:612
+#: order/models.py:670
 msgid "Target date for order completion. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
 msgid "Shipment Date"
 msgstr ""
 
-#: order/models.py:622
+#: order/models.py:680
 msgid "shipped by"
 msgstr ""
 
-#: order/models.py:688
+#: order/models.py:746
 msgid "Order cannot be completed as no parts have been assigned"
 msgstr ""
 
-#: order/models.py:692
+#: order/models.py:750
 msgid "Only a pending order can be marked as complete"
 msgstr ""
 
-#: order/models.py:695
+#: order/models.py:753
 msgid "Order cannot be completed as there are incomplete shipments"
 msgstr ""
 
-#: order/models.py:698
+#: order/models.py:756
 msgid "Order cannot be completed as there are incomplete line items"
 msgstr ""
 
-#: order/models.py:878
+#: order/models.py:936
 msgid "Item quantity"
 msgstr ""
 
-#: order/models.py:884
+#: order/models.py:942
 msgid "Line item reference"
 msgstr ""
 
-#: order/models.py:886
+#: order/models.py:944
 msgid "Line item notes"
 msgstr ""
 
-#: order/models.py:891
+#: order/models.py:949
 msgid "Target shipping date for this line item"
 msgstr ""
 
-#: order/models.py:909
+#: order/models.py:967
 msgid "Context"
 msgstr ""
 
-#: order/models.py:910
+#: order/models.py:968
 msgid "Additional context for this line"
 msgstr ""
 
-#: order/models.py:918
+#: order/models.py:976
 msgid "Unit price"
 msgstr ""
 
-#: order/models.py:951
+#: order/models.py:1009
 msgid "Supplier part must match supplier"
 msgstr ""
 
-#: order/models.py:958
+#: order/models.py:1016
 msgid "deleted"
 msgstr ""
 
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
 msgid "Order"
 msgstr ""
 
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
 msgid "Purchase Order"
 msgstr ""
 
-#: order/models.py:984
+#: order/models.py:1042
 msgid "Supplier part"
 msgstr ""
 
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
 msgstr ""
 
-#: order/models.py:992
+#: order/models.py:1050
 msgid "Number of items received"
 msgstr ""
 
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1900
 msgid "Purchase Price"
 msgstr ""
 
-#: order/models.py:1000
+#: order/models.py:1058
 msgid "Unit purchase price"
 msgstr ""
 
-#: order/models.py:1008
+#: order/models.py:1066
 msgid "Where does the Purchaser want this item to be stored?"
 msgstr ""
 
-#: order/models.py:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
 #: part/templates/part/prices.html:119 part/templates/part/prices.html:288
 msgid "Sale Price"
 msgstr ""
 
-#: order/models.py:1079
+#: order/models.py:1137
 msgid "Unit sale price"
 msgstr ""
 
-#: order/models.py:1084
+#: order/models.py:1142
 msgid "Shipped quantity"
 msgstr ""
 
-#: order/models.py:1171
+#: order/models.py:1229
 msgid "Date of shipment"
 msgstr ""
 
-#: order/models.py:1178
+#: order/models.py:1236
 msgid "Checked By"
 msgstr ""
 
-#: order/models.py:1179
+#: order/models.py:1237
 msgid "User who checked this shipment"
 msgstr ""
 
-#: order/models.py:1187
+#: order/models.py:1245
 msgid "Shipment number"
 msgstr ""
 
-#: order/models.py:1194
+#: order/models.py:1252
 msgid "Shipment notes"
 msgstr ""
 
-#: order/models.py:1201
+#: order/models.py:1259
 msgid "Tracking Number"
 msgstr ""
 
-#: order/models.py:1202
+#: order/models.py:1260
 msgid "Shipment tracking information"
 msgstr ""
 
-#: order/models.py:1213
+#: order/models.py:1267
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1268
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1285
 msgid "Shipment has already been sent"
 msgstr ""
 
-#: order/models.py:1216
+#: order/models.py:1288
 msgid "Shipment has no allocated stock items"
 msgstr ""
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1395 order/models.py:1397
 msgid "Stock item has not been assigned"
 msgstr ""
 
-#: order/models.py:1317
+#: order/models.py:1401
 msgid "Cannot allocate stock item to a line with a different part"
 msgstr ""
 
-#: order/models.py:1319
+#: order/models.py:1403
 msgid "Cannot allocate stock to a line without a part"
 msgstr ""
 
-#: order/models.py:1322
+#: order/models.py:1406
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr ""
 
-#: order/models.py:1326
+#: order/models.py:1410
 msgid "StockItem is over-allocated"
 msgstr ""
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1416 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr ""
 
-#: order/models.py:1335
+#: order/models.py:1419
 msgid "Sales order does not match shipment"
 msgstr ""
 
-#: order/models.py:1336
+#: order/models.py:1420
 msgid "Shipment does not match sales order"
 msgstr ""
 
-#: order/models.py:1344
+#: order/models.py:1428
 msgid "Line"
 msgstr ""
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr ""
 
-#: order/models.py:1353
+#: order/models.py:1437
 msgid "Sales order shipment reference"
 msgstr ""
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr ""
 
-#: order/models.py:1366
+#: order/models.py:1450
 msgid "Select stock item to allocate"
 msgstr ""
 
-#: order/models.py:1369
+#: order/models.py:1453
 msgid "Enter stock allocation quantity"
 msgstr ""
 
@@ -3662,7 +3642,7 @@ msgstr ""
 msgid "Purchase order must match supplier"
 msgstr ""
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr ""
 
@@ -3674,11 +3654,11 @@ msgstr ""
 msgid "Select destination location for received items"
 msgstr ""
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr ""
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr ""
 
@@ -3714,35 +3694,35 @@ msgstr ""
 msgid "Sale price currency"
 msgstr ""
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr ""
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr ""
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr ""
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr ""
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr ""
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr ""
 
@@ -3832,7 +3812,12 @@ msgstr ""
 msgid "Total cost"
 msgstr ""
 
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
 msgid "Edit Purchase Order"
 msgstr ""
 
@@ -3863,9 +3848,9 @@ msgstr ""
 #: part/templates/part/import_wizard/ajax_match_references.html:42
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3929,7 +3914,7 @@ msgstr ""
 msgid "Order Notes"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
 msgid "Add Order Line"
 msgstr ""
 
@@ -3947,12 +3932,12 @@ msgid "Print packing list"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
 msgid "Complete Sales Order"
 msgstr ""
 
@@ -3961,7 +3946,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2471
 msgid "Customer Reference"
 msgstr ""
 
@@ -3971,7 +3956,7 @@ msgstr ""
 msgid "Completed Shipments"
 msgstr ""
 
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
 msgid "Edit Sales Order"
 msgstr ""
 
@@ -3985,7 +3970,7 @@ msgid "Pending Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
 msgid "Actions"
 msgstr ""
 
@@ -4113,7 +4098,7 @@ msgid "Part Category"
 msgstr ""
 
 #: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
 #: users/models.py:38
 msgid "Part Categories"
 msgstr ""
@@ -4124,7 +4109,7 @@ msgstr ""
 #: part/templates/part/category_sidebar.html:9
 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
 #: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
 #: templates/navbar.html:24 users/models.py:39
 msgid "Parts"
 msgstr ""
@@ -4202,7 +4187,7 @@ msgstr ""
 
 #: part/models.py:842 part/templates/part/part_base.html:266
 #: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
 msgid "IPN"
 msgstr ""
 
@@ -4316,7 +4301,7 @@ msgid "Test with this name already exists for this part"
 msgstr ""
 
 #: part/models.py:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
 msgid "Test Name"
 msgstr ""
 
@@ -4448,7 +4433,7 @@ msgid "BOM quantity for this BOM item"
 msgstr ""
 
 #: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
 #: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
@@ -4482,7 +4467,7 @@ msgid "BOM line checksum"
 msgstr ""
 
 #: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
 #: templates/js/translated/table_filters.js:68
 #: templates/js/translated/table_filters.js:88
 msgid "Inherited"
@@ -4493,7 +4478,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
 #: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
 msgid "Allow Variants"
 msgstr ""
 
@@ -4714,6 +4699,11 @@ msgstr ""
 msgid "New Part"
 msgstr ""
 
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr ""
+
 #: part/templates/part/category.html:172
 msgid "Set category"
 msgstr ""
@@ -4902,46 +4892,46 @@ msgstr ""
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
 msgid "Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
 msgid "Add Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
@@ -5084,8 +5074,8 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
 #: templates/js/translated/model_renderers.js:192
 #: templates/js/translated/part.js:581 templates/js/translated/part.js:658
 msgid "Inactive"
@@ -5101,20 +5091,22 @@ msgstr ""
 msgid "This part is a variant of %(link)s"
 msgstr ""
 
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr ""
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr ""
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
 msgid "Can Build"
 msgstr ""
 
@@ -5133,7 +5125,7 @@ msgid "Latest Serial Number"
 msgstr ""
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr ""
 
@@ -5172,7 +5164,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -5291,7 +5283,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
 msgid "Supplier Cost"
 msgstr ""
 
@@ -5530,7 +5522,7 @@ msgstr ""
 msgid "Barcode associated with Stock Item"
 msgstr ""
 
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
 msgid "Label printing failed"
 msgstr ""
 
@@ -5770,12 +5762,12 @@ msgid "Stock Item Test Report"
 msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr ""
 
@@ -5796,7 +5788,7 @@ msgstr ""
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
 msgid "Date"
 msgstr ""
 
@@ -5815,7 +5807,7 @@ msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2589
 msgid "Serial"
 msgstr ""
 
@@ -5832,7 +5824,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr ""
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr ""
 
@@ -5894,7 +5886,7 @@ msgstr ""
 msgid "Packaging this stock item is stored in"
 msgstr ""
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr ""
 
@@ -5934,8 +5926,8 @@ msgstr ""
 msgid "Destination Sales Order"
 msgstr ""
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1816
 msgid "Expiry Date"
 msgstr ""
 
@@ -6215,11 +6207,11 @@ msgstr ""
 msgid "Installed Stock Items"
 msgstr ""
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
 msgid "Install Stock Item"
 msgstr ""
 
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
 msgid "Add Test Result"
 msgstr ""
 
@@ -6311,110 +6303,114 @@ msgstr ""
 msgid "Delete stock item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:244
-msgid "This stock item has not passed all required tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:252
-msgid "This stock item is allocated to Sales Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr ""
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:284
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:292
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1693
+msgid "No location set"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1832
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr ""
 
@@ -6486,8 +6482,8 @@ msgstr ""
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:198 users/models.py:40
 msgid "Stock Locations"
 msgstr ""
 
@@ -6539,7 +6535,7 @@ msgstr ""
 msgid "Child Items"
 msgstr ""
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr ""
 
@@ -6564,55 +6560,55 @@ msgstr ""
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr ""
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr ""
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr ""
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr ""
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr ""
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr ""
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr ""
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr ""
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr ""
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr ""
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr ""
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr ""
 
@@ -7331,9 +7327,9 @@ msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr ""
@@ -7602,14 +7598,14 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
 #: templates/js/translated/part.js:530
 #: templates/js/translated/table_filters.js:178
 msgid "Available"
@@ -7644,67 +7640,67 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
-#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
 msgid "No Response"
 msgstr ""
 
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
 msgid "No response from the InvenTree server"
 msgstr ""
 
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
 msgid "Error 400: Bad request"
 msgstr ""
 
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
 msgid "API request returned error code 400"
 msgstr ""
 
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
 msgid "Error 401: Not Authenticated"
 msgstr ""
 
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
 msgid "Authentication credentials not supplied"
 msgstr ""
 
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
 msgid "Error 403: Permission Denied"
 msgstr ""
 
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
 msgid "You do not have the required permissions to access this function"
 msgstr ""
 
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
 msgid "Error 404: Resource Not Found"
 msgstr ""
 
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
 msgid "The requested resource could not be located on the server"
 msgstr ""
 
-#: templates/js/translated/api.js:217
+#: templates/js/translated/api.js:262
 msgid "Error 405: Method Not Allowed"
 msgstr ""
 
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
 msgid "HTTP method not allowed at URL"
 msgstr ""
 
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
 msgid "Error 408: Timeout"
 msgstr ""
 
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
 msgid "Connection timeout while requesting data from server"
 msgstr ""
 
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
 msgid "Unhandled Error Code"
 msgstr ""
 
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
 msgid "Error code"
 msgstr ""
 
@@ -7765,7 +7761,7 @@ msgid "Unknown response from server"
 msgstr ""
 
 #: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "Invalid server response"
 msgstr ""
 
@@ -7847,12 +7843,12 @@ msgid "Download BOM Template"
 msgstr ""
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
 msgid "Format"
 msgstr ""
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr ""
 
@@ -7932,84 +7928,84 @@ msgstr ""
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
 msgid "Load BOM for subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
 msgid "No Stock Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
 msgid "Includes variant and substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
 #: templates/js/translated/part.js:690
 msgid "Includes variant stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
 msgid "Includes substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -8131,262 +8127,270 @@ msgstr ""
 msgid "Location not specified"
 msgstr ""
 
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
 msgid "No active build outputs found"
 msgstr ""
 
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
 msgid "Allocated Stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
 msgid "No tracked BOM items for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
 msgid "Completed Tests"
 msgstr ""
 
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
 msgid "No required tests for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
 msgid "Edit stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
 msgid "Delete stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
 msgid "Edit Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
 msgid "Remove Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
 msgid "Substitute parts available"
 msgstr ""
 
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
 msgid "Quantity Per"
 msgstr ""
 
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
 msgid "Insufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
 msgid "Sufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
 msgid "Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
 msgid "Build stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
 msgid "Order stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
 msgid "Allocate stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr ""
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
 msgid "You must select at least one part to allocate"
 msgstr ""
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
 msgid "All Parts Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
 msgid "All selected parts have been fully allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
 msgid "Select source location (leave blank to take from all locations)"
 msgstr ""
 
-#: templates/js/translated/build.js:2117
+#: templates/js/translated/build.js:2100
 msgid "Allocate Stock Items to Build Order"
 msgstr ""
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
 msgid "No matching stock locations"
 msgstr ""
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
 msgid "No matching stock items"
 msgstr ""
 
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
 msgid "Automatic Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
 msgstr ""
 
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
 msgid "If a location is specifed, stock will only be allocated from that location"
 msgstr ""
 
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
 msgstr ""
 
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
 msgstr ""
 
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
 msgid "Allocate Stock Items"
 msgstr ""
 
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
 msgid "Select"
 msgstr ""
 
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
 msgid "Build order is overdue"
 msgstr ""
 
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
 msgid "Progress"
 msgstr ""
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
 msgid "No information"
 msgstr ""
 
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
 msgid "No parts allocated for"
 msgstr ""
 
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
 msgid "Add Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
 msgid "Edit Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:342
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr ""
+
+#: templates/js/translated/company.js:595
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
 #: templates/js/translated/part.js:650
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
 #: templates/js/translated/part.js:654
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
 msgid "No supplier parts found"
 msgstr ""
 
@@ -8424,61 +8428,61 @@ msgstr ""
 msgid "Create filter"
 msgstr ""
 
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
 msgid "Action Prohibited"
 msgstr ""
 
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
 msgid "Create operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
 msgid "Update operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
 msgid "Delete operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
 msgid "View operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
 msgid "Keep this form open"
 msgstr ""
 
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
 msgid "Enter a valid number"
 msgstr ""
 
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
 #: templates/modals.html:43
 msgid "Form errors exist"
 msgstr ""
 
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
 msgid "No results found"
 msgstr ""
 
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
 msgid "Searching"
 msgstr ""
 
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
 msgid "Clear input"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "File Column"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "Field Name"
 msgstr ""
 
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
 msgid "Select Columns"
 msgstr ""
 
@@ -8552,62 +8556,62 @@ msgstr ""
 msgid "Select Label Template"
 msgstr ""
 
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
 msgid "Cancel"
 msgstr ""
 
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
 #: templates/modals.html:28 templates/modals.html:51
 msgid "Submit"
 msgstr ""
 
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
 msgid "Form Title"
 msgstr ""
 
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
 msgid "Waiting for server..."
 msgstr ""
 
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
 msgid "Show Error Information"
 msgstr ""
 
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
 msgid "Accept"
 msgstr ""
 
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
 msgid "Loading Data"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Invalid response from server"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Form data missing from server response"
 msgstr ""
 
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
 msgid "Error posting form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "JSON response missing form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
 msgid "Error 400: Bad Request"
 msgstr ""
 
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
 msgid "Server returned error code 400"
 msgstr ""
 
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
 msgid "Error requesting form data"
 msgstr ""
 
@@ -8665,377 +8669,381 @@ msgstr ""
 msgid "Notifications will load here"
 msgstr ""
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
 msgstr ""
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
 msgstr ""
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr ""
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr ""
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr ""
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr ""
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr ""
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr ""
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr ""
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr ""
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr ""
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr ""
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr ""
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
 msgid "Stock Status"
 msgstr ""
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr ""
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr ""
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr ""
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
 msgid "Order is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
 msgid "Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
 msgid "Duplicate Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
 msgid "Edit Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
 msgid "Delete Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1856
 msgid "No line items found"
 msgstr ""
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
 msgid "Total"
 msgstr ""
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
 msgid "Total Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
 msgid "Duplicate line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
 msgid "Edit line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
 msgid "Delete line item"
 msgstr ""
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
 msgid "Duplicate line"
 msgstr ""
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
 msgid "Edit line"
 msgstr ""
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
 msgid "Delete line"
 msgstr ""
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
 msgid "Duplicate Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
 msgid "Edit Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
 msgid "Delete Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2279
 msgid "No matching line"
 msgstr ""
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2392
 msgid "No sales orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2462
 msgid "Invalid Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2549
 msgid "Edit shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2552
 msgid "Complete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2557
 msgid "Delete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2577
 msgid "Edit Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2594
 msgid "Delete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2628
 msgid "No matching shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2638
 msgid "Shipment Reference"
 msgstr ""
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2662
 msgid "Not shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2668
 msgid "Tracking"
 msgstr ""
 
-#: templates/js/translated/order.js:2603
+#: templates/js/translated/order.js:2672
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:2841
 msgid "Add Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2892
 msgid "Confirm stock allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2893
 msgid "Allocate Stock Items to Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:3101
 msgid "No sales order allocations found"
 msgstr ""
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:3182
 msgid "Edit Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:3199
 msgid "Confirm Delete Operation"
 msgstr ""
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:3200
 msgid "Delete Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
 msgid "Shipped to customer"
 msgstr ""
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
 msgid "Stock location not specified"
 msgstr ""
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3623
 msgid "Allocate serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3629
 msgid "Purchase stock"
 msgstr ""
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
 msgid "Calculate price"
 msgstr ""
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3648
 msgid "Cannot be deleted as items have been shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3651
 msgid "Cannot be deleted as items have been allocated"
 msgstr ""
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3733
 msgid "Allocate Serial Numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3842
 msgid "Update Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3856
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:4092
 msgid "No matching lines"
 msgstr ""
 
@@ -9217,7 +9225,7 @@ msgid "No category"
 msgstr ""
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2238
 msgid "Display as list"
 msgstr ""
 
@@ -9225,7 +9233,7 @@ msgstr ""
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
 msgid "Display as tree"
 msgstr ""
 
@@ -9233,7 +9241,7 @@ msgstr ""
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
 msgid "Path"
 msgstr ""
 
@@ -9241,12 +9249,12 @@ msgstr ""
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
 msgid "Delete test result"
 msgstr ""
 
@@ -9367,11 +9375,11 @@ msgstr ""
 msgid "Sales Order(s) must be selected before printing report"
 msgstr ""
 
-#: templates/js/translated/search.js:307
+#: templates/js/translated/search.js:352
 msgid "Minimize results"
 msgstr ""
 
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:355
 msgid "Remove results"
 msgstr ""
 
@@ -9531,204 +9539,204 @@ msgstr ""
 msgid "Confirm stock adjustment"
 msgstr ""
 
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
 msgid "PASS"
 msgstr ""
 
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
 msgid "FAIL"
 msgstr ""
 
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
 msgid "NO RESULT"
 msgstr ""
 
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
 msgid "Pass test"
 msgstr ""
 
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
 msgid "Add test result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
 msgid "No test results found"
 msgstr ""
 
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
 msgid "Test Date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
 msgid "Edit Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
 msgid "Delete Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
 msgid "In production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
 msgid "Installed in Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
 msgid "Assigned to Sales Order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
 msgid "No stock location set"
 msgstr ""
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1712
 msgid "Stock item is in production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1717
 msgid "Stock item assigned to sales order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1720
 msgid "Stock item assigned to customer"
 msgstr ""
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr ""
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr ""
-
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
 msgid "Serialized stock item has been allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
 msgid "Stock item has been fully allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
 msgid "Stock item has been partially allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1730
 msgid "Stock item has been installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1734
+msgid "Stock item has expired"
+msgstr ""
+
+#: templates/js/translated/stock.js:1736
+msgid "Stock item will expire soon"
+msgstr ""
+
+#: templates/js/translated/stock.js:1743
 msgid "Stock item has been rejected"
 msgstr ""
 
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1745
 msgid "Stock item is lost"
 msgstr ""
 
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1747
 msgid "Stock item is destroyed"
 msgstr ""
 
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1751
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr ""
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1802
 msgid "Stocktake"
 msgstr ""
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1884
 msgid "Supplier part not specified"
 msgstr ""
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1922
 msgid "No stock items matching query"
 msgstr ""
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2095
 msgid "Set Stock Status"
 msgstr ""
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2109
 msgid "Select Status Code"
 msgstr ""
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2110
 msgid "Status code must be selected"
 msgstr ""
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2365
 msgid "Details"
 msgstr ""
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2381
 msgid "Part information unavailable"
 msgstr ""
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2403
 msgid "Location no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2422
 msgid "Purchase order no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
 msgid "Customer no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2459
 msgid "Stock item no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2482
 msgid "Added"
 msgstr ""
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2490
 msgid "Removed"
 msgstr ""
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2566
 msgid "No installed items"
 msgstr ""
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
 msgid "Uninstall Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2666
 msgid "Select stock item to uninstall"
 msgstr ""
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2687
 msgid "Install another stock item into this item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2688
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr ""
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2690
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2691
 msgid "The Stock Item is currently available in stock"
 msgstr ""
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2692
 msgid "The Stock Item is not already installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2693
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr ""
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2706
 msgid "Select part to install"
 msgstr ""
 
@@ -9960,69 +9968,81 @@ msgstr ""
 msgid "Purchasable"
 msgstr ""
 
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr ""
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr ""
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
 msgid "Export Table Data"
 msgstr ""
 
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
 msgid "Select File Format"
 msgstr ""
 
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
 msgid "Loading data"
 msgstr ""
 
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
 msgid "rows per page"
 msgstr ""
 
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
 msgid "Showing all rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "Showing"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "to"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "of"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
 #: templates/search.html:8 templates/search_form.html:6
 #: templates/search_form.html:7
 msgid "Search"
 msgstr ""
 
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
 msgid "No matching results"
 msgstr ""
 
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
 msgid "Hide/Show pagination"
 msgstr ""
 
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
 msgid "Refresh"
 msgstr ""
 
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
 msgid "Toggle"
 msgstr ""
 
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
 msgid "Columns"
 msgstr ""
 
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
 msgid "All"
 msgstr ""
 
diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index 0e0364b899..8925689b79 100644
--- a/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
-"PO-Revision-Date: 2022-05-24 01:42\n"
+"POT-Creation-Date: 2022-05-28 23:41+0000\n"
+"PO-Revision-Date: 2022-05-29 01:47\n"
 "Last-Translator: \n"
 "Language-Team: German\n"
 "Language: de_DE\n"
@@ -21,16 +21,16 @@ msgstr ""
 msgid "API endpoint not found"
 msgstr "API-Endpunkt nicht gefunden"
 
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
 msgid "Error details can be found in the admin panel"
-msgstr ""
+msgstr "Fehlerdetails finden Sie im Admin-Panel"
 
 #: InvenTree/fields.py:96
 msgid "Enter date"
 msgstr "Datum eingeben"
 
 #: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
 msgid "Confirm"
 msgstr "Bestätigen"
 
@@ -79,7 +79,7 @@ msgstr "E-Mail Adressen müssen übereinstimmen."
 msgid "Duplicate serial: {sn}"
 msgstr "Doppelte Seriennummer: {sn}"
 
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
 msgid "Invalid quantity provided"
 msgstr "Keine gültige Menge"
 
@@ -134,10 +134,12 @@ msgid "Select file to attach"
 msgstr "Datei zum Anhängen auswählen"
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:139 order/models.py:1273
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr "Link"
 
@@ -159,7 +161,7 @@ msgstr "Datei-Kommentar"
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2513
 msgid "User"
 msgstr "Benutzer"
 
@@ -205,9 +207,10 @@ msgstr "Ungültige Auswahl"
 #: templates/InvenTree/settings/plugin.html:132
 #: templates/InvenTree/settings/plugin_settings.html:23
 #: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2283
 msgid "Name"
 msgstr "Name"
 
@@ -216,22 +219,22 @@ msgstr "Name"
 #: company/models.py:575 company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
 #: part/templates/part/part_base.html:167
 #: part/templates/part/set_category.html:14 report/models.py:182
 #: report/models.py:547 report/models.py:586
 #: report/templates/report/inventree_build_order_base.html:118
 #: stock/templates/stock/location.html:103
 #: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
 msgid "Description"
 msgstr "Beschreibung"
 
@@ -406,7 +409,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:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
 msgid "Pending"
 msgstr "Ausstehend"
 
@@ -414,141 +417,145 @@ msgstr "Ausstehend"
 msgid "Placed"
 msgstr "Platziert"
 
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
 #: order/templates/order/order_base.html:134
 #: order/templates/order/sales_order_base.html:133
 msgid "Complete"
 msgstr "Fertig"
 
 #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
 msgid "Cancelled"
 msgstr "Storniert"
 
 #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
 msgid "Lost"
 msgstr "Verloren"
 
 #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
 msgid "Returned"
 msgstr "Zurückgegeben"
 
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
 msgid "Shipped"
 msgstr "Versendet"
 
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
 msgid "OK"
 msgstr "OK"
 
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
 msgid "Attention needed"
 msgstr "erfordert Eingriff"
 
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
 msgid "Damaged"
 msgstr "Beschädigt"
 
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
 msgid "Destroyed"
 msgstr "Zerstört"
 
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
 msgid "Rejected"
 msgstr "Zurückgewiesen"
 
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
 msgid "Legacy stock tracking entry"
 msgstr "Alter Bestand-Verfolgungs-Eintrag"
 
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
 msgid "Stock item created"
 msgstr "Lagerartikel erstellt"
 
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
 msgid "Edited stock item"
 msgstr "Lagerartikel bearbeitet"
 
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
 msgid "Assigned serial number"
 msgstr "Seriennummer hinzugefügt"
 
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
 msgid "Stock counted"
 msgstr "Bestand gezählt"
 
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
 msgid "Stock manually added"
 msgstr "Bestand manuell hinzugefügt"
 
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
 msgid "Stock manually removed"
 msgstr "Bestand manuell entfernt"
 
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
 msgid "Location changed"
 msgstr "Standort geändert"
 
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
 msgid "Installed into assembly"
 msgstr "In Baugruppe installiert"
 
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
 msgid "Removed from assembly"
 msgstr "Aus Baugruppe entfernt"
 
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
 msgid "Installed component item"
 msgstr "Komponente installiert"
 
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
 msgid "Removed component item"
 msgstr "Komponente entfernt"
 
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
 msgid "Split from parent item"
 msgstr "Vom übergeordneten Element geteilt"
 
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
 msgid "Split child item"
 msgstr "Unterobjekt geteilt"
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
 msgid "Merged stock items"
 msgstr "Lagerartikel zusammengeführt"
 
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
 msgid "Converted to variant"
 msgstr "In Variante umgewandelt"
 
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
 msgid "Sent to customer"
 msgstr "Zum Kunden geschickt"
 
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
 msgid "Returned from customer"
 msgstr "Rücksendung vom Kunden"
 
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
 msgid "Build order output created"
 msgstr "Endprodukt erstellt"
 
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
 msgid "Build order output completed"
 msgstr "Endprodukt fertiggestellt"
 
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
 msgid "Consumed by build order"
 msgstr "Durch Bauauftrag verbraucht"
 
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
 msgid "Received against purchase order"
 msgstr "Gegen Bestellung empfangen"
 
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
 msgid "Production"
 msgstr "in Arbeit"
 
@@ -637,15 +644,15 @@ msgstr "Bauaufträge"
 msgid "Build Order Reference"
 msgstr "Bauauftragsreferenz"
 
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
 #: part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
 msgid "Reference"
 msgstr "Referenz"
 
@@ -664,7 +671,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:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
 #: part/models.py:2303 part/models.py:2319 part/models.py:2338
 #: part/models.py:2355 part/models.py:2457 part/models.py:2579
 #: part/models.py:2669 part/models.py:2760 part/models.py:3050
@@ -679,19 +686,21 @@ 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:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
 msgid "Part"
 msgstr "Teil"
 
@@ -708,7 +717,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr "Bestellung, die diesem Bauauftrag zugewiesen ist"
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
 msgid "Source Location"
 msgstr "Quell-Lagerort"
 
@@ -749,7 +758,7 @@ msgid "Build status code"
 msgstr "Bau-Statuscode"
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr "Losnummer"
 
@@ -757,12 +766,12 @@ msgstr "Losnummer"
 msgid "Batch code for this build output"
 msgstr "Losnummer für dieses Endprodukt"
 
-#: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
 msgid "Creation Date"
 msgstr "Erstelldatum"
 
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
 msgid "Target completion date"
 msgstr "geplantes Fertigstellungsdatum"
 
@@ -770,8 +779,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:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
 msgid "Completion Date"
 msgstr "Fertigstellungsdatum"
 
@@ -779,7 +788,7 @@ msgstr "Fertigstellungsdatum"
 msgid "completed by"
 msgstr "Fertiggestellt von"
 
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
 msgid "Issued by"
 msgstr "Aufgegeben von"
 
@@ -788,11 +797,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:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
 msgid "Responsible"
 msgstr "Verantwortlicher Benutzer"
 
@@ -804,14 +813,14 @@ msgstr "Nutzer der für diesen Bauauftrag zuständig ist"
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr "Externer Link"
 
 #: build/models.py:334 build/serializers.py:390
 #: build/templates/build/sidebar.html:21 company/models.py:134
 #: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
 #: order/templates/order/po_sidebar.html:11
 #: order/templates/order/so_sidebar.html:17 part/models.py:983
 #: part/templates/part/part_sidebar.html:59
@@ -820,11 +829,11 @@ msgstr "Externer Link"
 #: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
 msgid "Notes"
 msgstr "Notizen"
 
@@ -857,7 +866,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:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1413
 msgid "Allocation quantity must be greater than zero"
 msgstr "Reserviermenge muss größer null sein"
 
@@ -869,8 +878,8 @@ msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein"
 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:1375 stock/templates/stock/item_base.html:335
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
 #: templates/navbar.html:38
 msgid "Build"
 msgstr "Bauauftrag"
@@ -879,18 +888,18 @@ msgstr "Bauauftrag"
 msgid "Build to allocate parts"
 msgstr "Bauauftrag starten um Teile zuzuweisen"
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2449
 msgid "Stock Item"
 msgstr "Lagerartikel"
 
@@ -902,10 +911,10 @@ msgstr "Quell-Lagerartikel"
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_build_order_base.html:114
@@ -913,25 +922,24 @@ msgstr "Quell-Lagerartikel"
 #: 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
 msgid "Quantity"
 msgstr "Anzahl"
 
@@ -948,7 +956,7 @@ msgid "Destination stock item"
 msgstr "Ziel-Lagerartikel"
 
 #: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
 msgid "Build Output"
 msgstr "Endprodukt"
 
@@ -972,7 +980,7 @@ msgstr "Dieses Endprodukt ist nicht vollständig zugewiesen"
 msgid "Enter quantity for build output"
 msgstr "Menge der Endprodukte angeben"
 
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
 #: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
 #: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
 #: stock/serializers.py:294
@@ -987,8 +995,8 @@ msgstr "Ganzzahl für verfolgbare Teile erforderlich"
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr "Ganzzahl erforderlich da die Stückliste nachverfolgbare Teile enthält"
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr "Seriennummer"
@@ -1015,15 +1023,15 @@ msgstr "Eine Liste von Endprodukten muss angegeben werden"
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
 msgid "Location"
 msgstr "Lagerort"
 
@@ -1032,12 +1040,12 @@ msgid "Location for completed build outputs"
 msgstr "Lagerort für fertige Endprodukte"
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: build/templates/build/detail.html:62 order/models.py:663
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
 msgid "Status"
 msgstr "Status"
 
@@ -1118,7 +1126,7 @@ msgstr "bom_item.part muss auf dasselbe Teil verweisen wie der Bauauftrag"
 msgid "Item must be in stock"
 msgstr "Teil muss auf Lager sein"
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr "Verfügbare Menge ({q}) überschritten"
@@ -1135,7 +1143,7 @@ msgstr "Endprodukt kann bei Zuweisung nicht-verfolgter Teile nicht angegeben wer
 msgid "This stock item has already been allocated to this build output"
 msgstr "Dieser Lagerbestand wurde bereits diesem Endprodukt zugewiesen"
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr "Zuweisungen müssen angegeben werden"
 
@@ -1233,13 +1241,13 @@ msgid "Stock has not been fully allocated to this Build Order"
 msgstr "Bestand wurde Bauauftrag noch nicht vollständig zugewiesen"
 
 #: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr "Zieldatum"
 
@@ -1266,14 +1274,14 @@ msgid "Completed"
 msgstr "Fertig"
 
 #: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2436
 msgid "Sales Order"
 msgstr "Auftrag"
 
@@ -1308,8 +1316,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:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
 msgid "Destination"
 msgstr "Ziel-Lager"
 
@@ -1322,11 +1330,11 @@ msgid "Allocated Parts"
 msgstr "Zugewiesene Teile"
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
-#: templates/js/translated/build.js:1184
+#: stock/templates/stock/item_base.html:170
+#: templates/js/translated/build.js:1179
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1335,7 +1343,7 @@ msgstr "Losnummer"
 #: build/templates/build/detail.html:126
 #: order/templates/order/order_base.html:149
 #: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
 msgid "Created"
 msgstr "Erstellt"
 
@@ -1355,7 +1363,7 @@ msgstr "Unter-Bauaufträge"
 msgid "Allocate Stock to Build"
 msgstr "Bestand Bauauftrag zuweisen"
 
-#: build/templates/build/detail.html:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
 msgid "Unallocate stock"
 msgstr "Bestandszuordnung aufheben"
 
@@ -1385,8 +1393,8 @@ msgstr "Benötigte Teile bestellen"
 
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: company/templates/company/detail.html:85
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr "Teile bestellen"
 
@@ -1461,8 +1469,8 @@ msgid "Completed Build Outputs"
 msgstr "Fertiggestellte Endprodukte"
 
 #: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
 #: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:82
 #: order/templates/order/sales_order_detail.html:129
@@ -1476,11 +1484,11 @@ msgstr "Anhänge"
 msgid "Build Notes"
 msgstr "Bauauftrags-Notizen"
 
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
 msgid "Allocation Complete"
 msgstr "Zuordnung abgeschlossen"
 
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
 msgid "All untracked stock items have been allocated"
 msgstr "Alle nicht verfolgten Lagerartikel wurden zugewiesen"
 
@@ -1492,18 +1500,6 @@ msgstr "Neuer Bauauftrag"
 msgid "Print Build Orders"
 msgstr "Bauaufträge ausdrucken"
 
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr "Kalender-Ansicht"
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr "Listen-Ansicht"
-
 #: build/templates/build/sidebar.html:5
 msgid "Build Order Details"
 msgstr "Bauauftragdetails"
@@ -1727,7 +1723,7 @@ msgstr "Vorlage"
 msgid "Parts are templates by default"
 msgstr "Teile sind standardmäßig Vorlagen"
 
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
 #: templates/js/translated/table_filters.js:168
 #: templates/js/translated/table_filters.js:460
 msgid "Assembly"
@@ -1966,11 +1962,11 @@ msgstr "Präfix für Auftrags-Referenz"
 
 #: common/models.py:1111
 msgid "Sales Order Default Shipment"
-msgstr ""
+msgstr "Auftrag Standardsendung"
 
 #: common/models.py:1112
 msgid "Enable creation of default shipment with sales orders"
-msgstr ""
+msgstr "Erstelle eine Standardsendung für Aufträge"
 
 #: common/models.py:1118
 msgid "Purchase Order Reference Prefix"
@@ -2286,7 +2282,7 @@ msgstr "Inaktive Teile ausblenden"
 
 #: common/models.py:1430
 msgid "Excluded inactive parts from search preview window"
-msgstr ""
+msgstr "Inaktive Teile in der Suchvorschau ausblenden"
 
 #: common/models.py:1436
 msgid "Search Categories"
@@ -2306,11 +2302,11 @@ msgstr "Lagerartikel in Suchvorschau anzeigen"
 
 #: common/models.py:1450
 msgid "Hide Unavailable Stock Items"
-msgstr ""
+msgstr "Nicht verfügbare Artikel ausblenden"
 
 #: common/models.py:1451
 msgid "Exclude stock items which are not available from the search preview window"
-msgstr ""
+msgstr "Nicht verfügbare Lagerartikel aus der Suchvorschau ausschließen"
 
 #: common/models.py:1457
 msgid "Search Locations"
@@ -2338,11 +2334,11 @@ msgstr "Bestellungen in der Suchvorschau anzeigen"
 
 #: common/models.py:1478
 msgid "Exclude Inactive Purchase Orders"
-msgstr ""
+msgstr "Inaktive Bestellungen ausblenden"
 
 #: common/models.py:1479
 msgid "Exclude inactive purchase orders from search preview window"
-msgstr ""
+msgstr "Inaktive Bestellungen in der Suchvorschau ausblenden"
 
 #: common/models.py:1485
 msgid "Search Sales Orders"
@@ -2354,11 +2350,11 @@ msgstr "Aufträge in der Suchvorschau anzeigen"
 
 #: common/models.py:1492
 msgid "Exclude Inactive Sales Orders"
-msgstr ""
+msgstr "Inaktive Aufträge ausblenden"
 
 #: common/models.py:1493
 msgid "Exclude inactive sales orders from search preview window"
-msgstr ""
+msgstr "Inaktive Aufträge in der Suchvorschau ausblenden"
 
 #: common/models.py:1499
 msgid "Search Preview Results"
@@ -2413,7 +2409,7 @@ msgid "Price break quantity"
 msgstr "Preisstaffelungs Anzahl"
 
 #: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: company/templates/company/supplier_part.html:263 order/models.py:975
 #: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
 msgid "Price"
 msgstr "Preis"
@@ -2556,7 +2552,7 @@ msgstr "Firmenbeschreibung"
 
 #: company/models.py:104 company/templates/company/company_base.html:100
 #: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
 msgid "Website"
 msgstr "Website"
 
@@ -2651,10 +2647,11 @@ msgstr "Teil auswählen"
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: stock/templates/stock/item_base.html:212
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
 #: templates/js/translated/table_filters.js:411
 msgid "Manufacturer"
 msgstr "Hersteller"
@@ -2665,8 +2662,10 @@ msgstr "Hersteller auswählen"
 
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr "MPN"
@@ -2686,7 +2685,7 @@ msgstr "Teilbeschreibung des Herstellers"
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr "Herstellerteil"
 
@@ -2696,8 +2695,9 @@ msgstr "Parametername"
 
 #: company/models.py:427
 #: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
 msgid "Value"
 msgstr "Wert"
 
@@ -2708,7 +2708,7 @@ msgstr "Parameterwert"
 #: company/models.py:434 part/models.py:940 part/models.py:2549
 #: part/templates/part/part_base.html:280
 #: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
 msgid "Units"
 msgstr "Einheiten"
 
@@ -2721,11 +2721,12 @@ msgid "Linked manufacturer part must reference the same base part"
 msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren"
 
 #: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: stock/templates/stock/item_base.html:229
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2736,8 +2737,9 @@ msgid "Select supplier"
 msgstr "Zulieferer auswählen"
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
 msgid "SKU"
 msgstr "SKU (Lagerbestandseinheit)"
 
@@ -2773,8 +2775,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr "Mindestpreis"
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
 msgid "Packaging"
 msgstr "Verpackungen"
 
@@ -2804,12 +2806,12 @@ msgstr "Währungscode"
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
 msgid "Company"
 msgstr "Firma"
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr "Bestellung anlegen"
 
@@ -2822,7 +2824,7 @@ msgid "Edit company information"
 msgstr "Firmeninformation bearbeiten"
 
 #: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
 msgid "Edit Company"
 msgstr "Firma bearbeiten"
 
@@ -2845,12 +2847,12 @@ msgstr "Neues Bild hochladen"
 msgid "Download image from URL"
 msgstr "Bild von URL herunterladen"
 
-#: company/templates/company/company_base.html:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr "Kunde"
@@ -2869,7 +2871,7 @@ msgid "Upload Image"
 msgstr "Bild hochladen"
 
 #: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
+#: company/templates/company/manufacturer_part_sidebar.html:7
 #: templates/InvenTree/search.html:118
 msgid "Supplier Parts"
 msgstr "Zuliefererteile"
@@ -2884,28 +2886,19 @@ msgstr "Neues Zuliefererteil anlegen"
 msgid "New Supplier Part"
 msgstr "Neues Zuliefererteil"
 
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr "Optionen"
-
 #: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
 #: part/templates/part/category.html:176
 msgid "Order parts"
 msgstr "Teile bestellen"
 
 #: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
 msgid "Delete parts"
 msgstr "Teile löschen"
 
 #: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
 msgid "Delete Parts"
 msgstr "Teile löschen"
 
@@ -2917,88 +2910,76 @@ msgstr "Herstellerteile"
 msgid "Create new manufacturer part"
 msgstr "Neues Herstellerteil anlegen"
 
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
 msgid "New Manufacturer Part"
 msgstr "Neues Herstellerteil"
 
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
 msgid "Supplier Stock"
 msgstr "Zulieferer-Bestand"
 
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
 #: company/templates/company/sidebar.html:12
 #: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
 #: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:235 templates/navbar.html:50
 #: users/models.py:43
 msgid "Purchase Orders"
 msgstr "Bestellungen"
 
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
 #: order/templates/order/purchase_orders.html:17
 msgid "Create new purchase order"
 msgstr "Neue Bestellung anlegen"
 
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr "Neue Bestellung"
 
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
 #: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
 #: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
 #: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:259 templates/navbar.html:61
 #: users/models.py:44
 msgid "Sales Orders"
 msgstr "Aufträge"
 
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
 #: order/templates/order/sales_orders.html:20
 msgid "Create new sales order"
 msgstr "Neuen Auftrag anlegen"
 
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
 #: order/templates/order/sales_orders.html:21
 msgid "New Sales Order"
 msgstr "Neuer Auftrag"
 
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
 msgid "Assigned Stock"
 msgstr "Zugeordneter Bestand"
 
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
 msgid "Company Notes"
 msgstr "Firmenbemerkungen"
 
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr "Zuliefererteil entfernen?"
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr "Alle ausgewählten Zulieferteile werden gelöscht"
-
 #: company/templates/company/index.html:8
 msgid "Supplier List"
 msgstr "Zulieferer-Liste"
 
 #: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
 #: templates/navbar.html:49
 msgid "Manufacturers"
 msgstr "Hersteller"
@@ -3011,12 +2992,12 @@ msgid "Order part"
 msgstr "Teil bestellen"
 
 #: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
 msgid "Edit manufacturer part"
 msgstr "Herstellerteil bearbeiten"
 
 #: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
 msgid "Delete manufacturer part"
 msgstr "Herstellerteil löschen"
 
@@ -3032,55 +3013,46 @@ msgstr "Keine Herstellerdaten verfügbar"
 #: company/templates/company/manufacturer_part.html:119
 #: company/templates/company/supplier_part.html:15 company/views.py:41
 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
 msgid "Suppliers"
 msgstr "Zulieferer"
 
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
 #: part/templates/part/detail.html:363
 msgid "Delete supplier parts"
 msgstr "Zuliefererteil entfernen"
 
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
 msgid "Delete"
 msgstr "Löschen"
 
-#: company/templates/company/manufacturer_part.html:164
+#: company/templates/company/manufacturer_part.html:166
 #: company/templates/company/manufacturer_part_sidebar.html:5
 #: part/templates/part/category_sidebar.html:19
 #: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8
 msgid "Parameters"
 msgstr "Parameter"
 
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
 #: part/templates/part/detail.html:184
 #: templates/InvenTree/settings/category.html:12
 #: templates/InvenTree/settings/part.html:66
 msgid "New Parameter"
 msgstr "Neuer Parameter"
 
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
 msgid "Delete parameters"
 msgstr "Parameter löschen"
 
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
 msgid "Add Parameter"
 msgstr "Parameter hinzufügen"
 
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr "Ausgewählte Parameter werden gelöscht"
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr "Parameter löschen"
-
 #: company/templates/company/sidebar.html:6
 msgid "Manufactured Parts"
 msgstr "Hergestellte Teile"
@@ -3099,19 +3071,19 @@ msgstr "Zugewiesene Lagerartikel"
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
 msgid "Supplier Part"
 msgstr "Zuliefererteil"
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
 msgid "Edit supplier part"
 msgstr "Zuliefererteil bearbeiten"
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
 msgid "Delete supplier part"
 msgstr "Zuliefererteil entfernen"
 
@@ -3186,11 +3158,11 @@ msgstr "Zuletzt aktualisiert"
 #: part/templates/part/part_sidebar.html:14
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
 #: templates/InvenTree/settings/sidebar.html:43
 #: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
 #: templates/navbar.html:31
 msgid "Stock"
 msgstr "Bestand"
@@ -3216,8 +3188,8 @@ msgstr "Bepreisung"
 #: stock/templates/stock/location.html:161
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
+#: templates/js/translated/stock.js:2307 users/models.py:41
 msgid "Stock Items"
 msgstr "Lagerartikel"
 
@@ -3229,7 +3201,7 @@ msgstr "Neuer Zulieferer"
 msgid "New Manufacturer"
 msgstr "Neuer Hersteller"
 
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
 #: templates/navbar.html:60
 msgid "Customers"
 msgstr "Kunden"
@@ -3238,7 +3210,7 @@ msgstr "Kunden"
 msgid "New Customer"
 msgstr "Neuer Kunde"
 
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:212
 msgid "Companies"
 msgstr "Firmen"
 
@@ -3328,305 +3300,313 @@ 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/models.py:130
+#: order/models.py:137
 msgid "Order description"
 msgstr "Bestellungs-Beschreibung"
 
-#: order/models.py:132
+#: order/models.py:139 order/models.py:1274
 msgid "Link to external page"
 msgstr "Link auf externe Seite"
 
-#: order/models.py:140
+#: order/models.py:147
 msgid "Created By"
 msgstr "Erstellt von"
 
-#: order/models.py:147
+#: order/models.py:154
 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:152
+#: order/models.py:159
 msgid "Order notes"
 msgstr "Bestell-Notizen"
 
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
 msgid "Order reference"
 msgstr "Bestell-Referenz"
 
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
 msgid "Purchase order status"
 msgstr "Bestellungs-Status"
 
-#: order/models.py:253
+#: order/models.py:311
 msgid "Company from which the items are being ordered"
 msgstr "Firma bei der die Teile bestellt werden"
 
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
 msgid "Supplier Reference"
 msgstr "Zulieferer-Referenz"
 
-#: order/models.py:256
+#: order/models.py:314
 msgid "Supplier order reference code"
 msgstr "Zulieferer Bestellreferenz"
 
-#: order/models.py:263
+#: order/models.py:321
 msgid "received by"
 msgstr "Empfangen von"
 
-#: order/models.py:268
+#: order/models.py:326
 msgid "Issue Date"
 msgstr "Aufgabedatum"
 
-#: order/models.py:269
+#: order/models.py:327
 msgid "Date order was issued"
 msgstr "Datum an dem die Bestellung aufgegeben wurde"
 
-#: order/models.py:274
+#: order/models.py:332
 msgid "Target Delivery Date"
 msgstr "Ziel-Versanddatum"
 
-#: order/models.py:275
+#: order/models.py:333
 msgid "Expected date for order delivery. Order will be overdue after this date."
 msgstr "Geplantes Lieferdatum für Auftrag."
 
-#: order/models.py:281
+#: order/models.py:339
 msgid "Date order was completed"
 msgstr "Datum an dem der Auftrag fertigstellt wurde"
 
-#: order/models.py:310
+#: order/models.py:368
 msgid "Part supplier must match PO supplier"
 msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen"
 
-#: order/models.py:456
+#: order/models.py:514
 msgid "Quantity must be a positive number"
 msgstr "Anzahl muss eine positive Zahl sein"
 
-#: order/models.py:601
+#: order/models.py:659
 msgid "Company to which the items are being sold"
 msgstr "Firma an die die Teile verkauft werden"
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer Reference "
 msgstr "Kundenreferenz"
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer order reference code"
 msgstr "Bestellreferenz"
 
-#: order/models.py:612
+#: order/models.py:670
 msgid "Target date for order completion. Order will be overdue after this date."
 msgstr "Zieldatum für Auftrags-Fertigstellung."
 
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
 msgid "Shipment Date"
 msgstr "Versanddatum"
 
-#: order/models.py:622
+#: order/models.py:680
 msgid "shipped by"
 msgstr "Versand von"
 
-#: order/models.py:688
+#: order/models.py:746
 msgid "Order cannot be completed as no parts have been assigned"
 msgstr "Auftrag kann nicht abgeschlossen werden, da keine Teile zugewiesen wurden"
 
-#: order/models.py:692
+#: order/models.py:750
 msgid "Only a pending order can be marked as complete"
 msgstr "Nur ein ausstehender Auftrag kann als abgeschlossen markiert werden"
 
-#: order/models.py:695
+#: order/models.py:753
 msgid "Order cannot be completed as there are incomplete shipments"
 msgstr "Auftrag kann nicht abgeschlossen werden, da unvollständige Sendungen vorhanden sind"
 
-#: order/models.py:698
+#: order/models.py:756
 msgid "Order cannot be completed as there are incomplete line items"
 msgstr "Auftrag kann nicht abgeschlossen werden, da es unvollständige Positionen gibt"
 
-#: order/models.py:878
+#: order/models.py:936
 msgid "Item quantity"
 msgstr "Anzahl"
 
-#: order/models.py:884
+#: order/models.py:942
 msgid "Line item reference"
 msgstr "Position - Referenz"
 
-#: order/models.py:886
+#: order/models.py:944
 msgid "Line item notes"
 msgstr "Position - Notizen"
 
-#: order/models.py:891
+#: order/models.py:949
 msgid "Target shipping date for this line item"
 msgstr "Lieferdatum für diese Position"
 
-#: order/models.py:909
+#: order/models.py:967
 msgid "Context"
 msgstr "Kontext"
 
-#: order/models.py:910
+#: order/models.py:968
 msgid "Additional context for this line"
 msgstr "Zusätzlicher Kontext für diese Zeile"
 
-#: order/models.py:918
+#: order/models.py:976
 msgid "Unit price"
 msgstr "Stückpreis"
 
-#: order/models.py:951
+#: order/models.py:1009
 msgid "Supplier part must match supplier"
 msgstr "Lieferantenteil muss mit Lieferant übereinstimmen"
 
-#: order/models.py:958
+#: order/models.py:1016
 msgid "deleted"
 msgstr "gelöscht"
 
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
 msgid "Order"
 msgstr "Bestellung"
 
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
 msgid "Purchase Order"
 msgstr "Bestellung"
 
-#: order/models.py:984
+#: order/models.py:1042
 msgid "Supplier part"
 msgstr "Zuliefererteil"
 
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
 msgstr "Empfangen"
 
-#: order/models.py:992
+#: order/models.py:1050
 msgid "Number of items received"
 msgstr "Empfangene Objekt-Anzahl"
 
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1900
 msgid "Purchase Price"
 msgstr "Preis"
 
-#: order/models.py:1000
+#: order/models.py:1058
 msgid "Unit purchase price"
 msgstr "Preis pro Einheit"
 
-#: order/models.py:1008
+#: order/models.py:1066
 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:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
 #: part/templates/part/prices.html:119 part/templates/part/prices.html:288
 msgid "Sale Price"
 msgstr "Verkaufspreis"
 
-#: order/models.py:1079
+#: order/models.py:1137
 msgid "Unit sale price"
 msgstr "Stückverkaufspreis"
 
-#: order/models.py:1084
+#: order/models.py:1142
 msgid "Shipped quantity"
 msgstr "Versendete Menge"
 
-#: order/models.py:1171
+#: order/models.py:1229
 msgid "Date of shipment"
 msgstr "Versanddatum"
 
-#: order/models.py:1178
+#: order/models.py:1236
 msgid "Checked By"
 msgstr "Kontrolliert von"
 
-#: order/models.py:1179
+#: order/models.py:1237
 msgid "User who checked this shipment"
 msgstr "Benutzer, der diese Sendung kontrolliert hat"
 
-#: order/models.py:1187
+#: order/models.py:1245
 msgid "Shipment number"
 msgstr "Sendungsnummer"
 
-#: order/models.py:1194
+#: order/models.py:1252
 msgid "Shipment notes"
 msgstr "Versandhinweise"
 
-#: order/models.py:1201
+#: order/models.py:1259
 msgid "Tracking Number"
 msgstr "Sendungsverfolgungsnummer"
 
-#: order/models.py:1202
+#: order/models.py:1260
 msgid "Shipment tracking information"
 msgstr "Informationen zur Sendungsverfolgung"
 
-#: order/models.py:1213
+#: order/models.py:1267
+msgid "Invoice Number"
+msgstr "Rechnungsnummer"
+
+#: order/models.py:1268
+msgid "Reference number for associated invoice"
+msgstr "Referenznummer für zugehörige Rechnung"
+
+#: order/models.py:1285
 msgid "Shipment has already been sent"
 msgstr "Sendung wurde bereits versandt"
 
-#: order/models.py:1216
+#: order/models.py:1288
 msgid "Shipment has no allocated stock items"
 msgstr "Sendung hat keine zugewiesene Lagerartikel"
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1395 order/models.py:1397
 msgid "Stock item has not been assigned"
 msgstr "Lagerartikel wurde nicht zugewiesen"
 
-#: order/models.py:1317
+#: order/models.py:1401
 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:1319
+#: order/models.py:1403
 msgid "Cannot allocate stock to a line without a part"
 msgstr "Kann Lagerartikel keiner Zeile ohne Teil hinzufügen"
 
-#: order/models.py:1322
+#: order/models.py:1406
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten"
 
-#: order/models.py:1326
+#: order/models.py:1410
 msgid "StockItem is over-allocated"
 msgstr "Zu viele Lagerartikel zugewiesen"
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1416 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr "Anzahl für serialisierte Lagerartikel muss 1 sein"
 
-#: order/models.py:1335
+#: order/models.py:1419
 msgid "Sales order does not match shipment"
 msgstr "Auftrag gehört nicht zu Sendung"
 
-#: order/models.py:1336
+#: order/models.py:1420
 msgid "Shipment does not match sales order"
 msgstr "Sendung gehört nicht zu Auftrag"
 
-#: order/models.py:1344
+#: order/models.py:1428
 msgid "Line"
 msgstr "Position"
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr "Sendung"
 
-#: order/models.py:1353
+#: order/models.py:1437
 msgid "Sales order shipment reference"
 msgstr "Sendungsnummer-Referenz"
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr "Position"
 
-#: order/models.py:1366
+#: order/models.py:1450
 msgid "Select stock item to allocate"
 msgstr "Lagerartikel für Zuordnung auswählen"
 
-#: order/models.py:1369
+#: order/models.py:1453
 msgid "Enter stock allocation quantity"
 msgstr "Anzahl für Bestandszuordnung eingeben"
 
@@ -3662,7 +3642,7 @@ msgstr "Lieferant muss mit der Bestellung übereinstimmen"
 msgid "Purchase order must match supplier"
 msgstr "Die Bestellung muss mit dem Lieferant übereinstimmen"
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr "Position"
 
@@ -3674,11 +3654,11 @@ msgstr "Position stimmt nicht mit Kaufauftrag überein"
 msgid "Select destination location for received items"
 msgstr "Zielort für empfangene Teile auswählen"
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr "Losnummer für eingehende Lagerartikel"
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr "Seriennummern für eingehende Lagerartikel"
 
@@ -3714,35 +3694,35 @@ msgstr "Barcode muss eindeutig sein"
 msgid "Sale price currency"
 msgstr "Verkaufspreis-Währung"
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr "Keine Sendungsdetails angegeben"
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr "Position ist nicht diesem Auftrag zugeordnet"
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr "Anzahl muss positiv sein"
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr "Seriennummern zum Zuweisen eingeben"
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr "Sendung wurde bereits versandt"
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr "Sendung ist nicht diesem Auftrag zugeordnet"
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr "Folgende Serienummern konnten nicht gefunden werden"
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr "Folgende Seriennummern sind bereits zugewiesen"
 
@@ -3832,7 +3812,12 @@ msgstr "Aufgegeben"
 msgid "Total cost"
 msgstr "Gesamtsumme"
 
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
 msgid "Edit Purchase Order"
 msgstr "Bestellung bearbeiten"
 
@@ -3863,9 +3848,9 @@ msgstr "Zulieferer-Teil auswählen"
 #: part/templates/part/import_wizard/ajax_match_references.html:42
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3929,7 +3914,7 @@ msgstr "Empfangene Teile"
 msgid "Order Notes"
 msgstr "Notizen zur Bestellung"
 
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
 msgid "Add Order Line"
 msgstr "Neue Auftragspositionen hinzufügen"
 
@@ -3947,12 +3932,12 @@ msgid "Print packing list"
 msgstr "Paketliste drucken"
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
-msgstr ""
+msgstr "Abgeschlossene Sendungen"
 
 #: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
 msgid "Complete Sales Order"
 msgstr "Auftrag abschließen"
 
@@ -3961,7 +3946,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr "Dieser Auftrag ist nicht vollständig zugeordnet"
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2471
 msgid "Customer Reference"
 msgstr "Kundenreferenz"
 
@@ -3971,7 +3956,7 @@ msgstr "Kundenreferenz"
 msgid "Completed Shipments"
 msgstr "Abgeschlossene Sendungen"
 
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
 msgid "Edit Sales Order"
 msgstr "Auftrag bearbeiten"
 
@@ -3985,7 +3970,7 @@ msgid "Pending Shipments"
 msgstr "Ausstehende Sendungen"
 
 #: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
 msgid "Actions"
 msgstr "Aktionen"
 
@@ -4113,7 +4098,7 @@ msgid "Part Category"
 msgstr "Teil-Kategorie"
 
 #: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
 #: users/models.py:38
 msgid "Part Categories"
 msgstr "Teil-Kategorien"
@@ -4124,7 +4109,7 @@ msgstr "Teil-Kategorien"
 #: part/templates/part/category_sidebar.html:9
 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
 #: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
 #: templates/navbar.html:24 users/models.py:39
 msgid "Parts"
 msgstr "Teile"
@@ -4202,7 +4187,7 @@ msgstr "Teile-Kategorie"
 
 #: part/models.py:842 part/templates/part/part_base.html:266
 #: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
 msgid "IPN"
 msgstr "IPN (Interne Produktnummer)"
 
@@ -4316,7 +4301,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:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
 msgid "Test Name"
 msgstr "Test-Name"
 
@@ -4448,7 +4433,7 @@ msgid "BOM quantity for this BOM item"
 msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil"
 
 #: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
 #: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr "Optional"
@@ -4482,7 +4467,7 @@ msgid "BOM line checksum"
 msgstr "Prüfsumme der Stückliste"
 
 #: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
 #: templates/js/translated/table_filters.js:68
 #: templates/js/translated/table_filters.js:88
 msgid "Inherited"
@@ -4493,7 +4478,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr "Diese Stücklisten-Position wird in die Stücklisten von Teil-Varianten vererbt"
 
 #: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
 msgid "Allow Variants"
 msgstr "Varianten zulassen"
 
@@ -4714,6 +4699,11 @@ msgstr "Neues Teil anlegen"
 msgid "New Part"
 msgstr "Neues Teil"
 
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr "Optionen"
+
 #: part/templates/part/category.html:172
 msgid "Set category"
 msgstr "Teil-Kategorie auswählen"
@@ -4902,46 +4892,46 @@ msgstr "Bauauftragszuweisungen"
 msgid "Part Suppliers"
 msgstr "Zulieferer"
 
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
 msgid "Part Manufacturers"
 msgstr "Teil-Hersteller"
 
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
 msgid "Delete manufacturer parts"
 msgstr "Herstellerteile löschen"
 
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
 msgid "Create BOM Item"
 msgstr "Stücklisten-Position anlegen"
 
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
 msgid "Related Part"
 msgstr "verknüpftes Teil"
 
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
 msgid "Add Related Part"
 msgstr "verknüpftes Teil hinzufügen"
 
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
 msgid "Add Test Result Template"
 msgstr "Testergebnis-Vorlage hinzufügen"
 
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr "Stückpreis Einkauf - %(currency)s"
 
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr "Stückpreis Differenz - %(currency)s"
 
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr "Stückpreis Zulieferer - %(currency)s"
 
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr "Stückpreis - %(currency)s"
@@ -5084,8 +5074,8 @@ msgid "Part is virtual (not a physical part)"
 msgstr "Teil ist virtuell (kein physisches Teil)"
 
 #: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
 #: templates/js/translated/model_renderers.js:192
 #: templates/js/translated/part.js:581 templates/js/translated/part.js:658
 msgid "Inactive"
@@ -5101,20 +5091,22 @@ 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:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr "Auf Lager"
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr "Zu Bauaufträgen zugeordnet"
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr "Zur Bestellung zugeordnet"
 
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
 msgid "Can Build"
 msgstr "Herstellbar"
 
@@ -5133,7 +5125,7 @@ msgid "Latest Serial Number"
 msgstr "letzte Seriennummer"
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr "Nach Seriennummer suchen"
 
@@ -5172,7 +5164,7 @@ msgid "Total Cost"
 msgstr "Gesamtkosten"
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
 msgid "No supplier pricing available"
 msgstr "Keine Zulieferer-Preise verfügbar"
 
@@ -5293,7 +5285,7 @@ msgstr "Verkaufspreis anzeigen"
 msgid "Calculation parameters"
 msgstr "Berechnungsparameter"
 
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
 msgid "Supplier Cost"
 msgstr "Zuliefererkosten"
 
@@ -5532,7 +5524,7 @@ msgstr "Barcode-Hash entspricht bereits einem Lagerartikel"
 msgid "Barcode associated with Stock Item"
 msgstr "Barcode Lagerartikel zugeordnet"
 
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
 msgid "Label printing failed"
 msgstr "Labeldruck fehlgeschlagen"
 
@@ -5772,12 +5764,12 @@ msgid "Stock Item Test Report"
 msgstr "Lagerartikel Test-Bericht"
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr "Seriennummer"
 
@@ -5798,7 +5790,7 @@ msgstr "Ergebnis"
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
 msgid "Date"
 msgstr "Datum"
 
@@ -5817,7 +5809,7 @@ msgstr "Verbaute Objekte"
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2589
 msgid "Serial"
 msgstr "Seriennummer"
 
@@ -5834,7 +5826,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr "Seriennummern können für nicht verfolgbare Teile nicht angegeben werden"
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr "Besitzer"
 
@@ -5896,7 +5888,7 @@ msgstr "Wo wird dieses Teil normalerweise gelagert?"
 msgid "Packaging this stock item is stored in"
 msgstr "Die Verpackung dieses Lagerartikel ist gelagert in"
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr "verbaut in"
 
@@ -5936,8 +5928,8 @@ msgstr "Bestellung für diesen Lagerartikel"
 msgid "Destination Sales Order"
 msgstr "Ziel-Auftrag"
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1816
 msgid "Expiry Date"
 msgstr "Ablaufdatum"
 
@@ -6217,11 +6209,11 @@ msgstr "Testdaten hinzufügen"
 msgid "Installed Stock Items"
 msgstr "Installierte Lagerartikel"
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
 msgid "Install Stock Item"
 msgstr "Lagerartikel installieren"
 
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
 msgid "Add Test Result"
 msgstr "Testergebnis hinzufügen"
 
@@ -6313,110 +6305,114 @@ msgstr "Lagerartikel bearbeiten"
 msgid "Delete stock item"
 msgstr "Lagerartikel löschen"
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr "vorherige Seite"
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr "Zur vorherigen Seriennummer wechseln"
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr "nächste Seite"
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr "Zur nächsten Seriennummer wechseln"
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-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:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr "abgelaufen"
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-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:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr "überfällig"
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr "Zuletzt aktualisiert"
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr "Letzte Inventur"
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr "Keine Inventur ausgeführt"
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr "Dieser Lagerartikel wird gerade hergestellt und kann nicht geändert werden."
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr "Ändern des Lagerartikel in der Bauauftrag-Ansicht."
-
-#: stock/templates/stock/item_base.html:244
-msgid "This stock item has not passed all required tests"
-msgstr "Dieser Lagerartikel hat nicht alle Tests bestanden"
-
-#: stock/templates/stock/item_base.html:252
-msgid "This stock item is allocated to Sales Order"
-msgstr "Dieser Lagerartikel ist einem Auftrag zugewiesen"
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr "Dieser Lagerartikel ist einem Bauauftrag zugewiesen"
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr "Diesesr Lagerartikel ist serialisiert. Es hat eine eindeutige Seriennummer und die Anzahl kann nicht angepasst werden."
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr "Kein Lagerort gesetzt"
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr "Barcode-Bezeichner"
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr "Elternposition"
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr "Kein Hersteller ausgewählt"
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr "Tests"
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr "Sie gehören nicht zu den Eigentümern dieses Objekts und können es nicht ändern."
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr "Nur Leserechte"
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr "Dieser Lagerartikel wird gerade hergestellt und kann nicht geändert werden."
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr "Ändern des Lagerartikel in der Bauauftrag-Ansicht."
+
+#: stock/templates/stock/item_base.html:284
+msgid "This stock item has not passed all required tests"
+msgstr "Dieser Lagerartikel hat nicht alle Tests bestanden"
+
+#: stock/templates/stock/item_base.html:292
+msgid "This stock item is allocated to Sales Order"
+msgstr "Dieser Lagerartikel ist einem Auftrag zugewiesen"
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr "Dieser Lagerartikel ist einem Bauauftrag zugewiesen"
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr "Diesesr Lagerartikel ist serialisiert. Es hat eine eindeutige Seriennummer und die Anzahl kann nicht angepasst werden."
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr "vorherige Seite"
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr "Zur vorherigen Seriennummer wechseln"
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr "nächste Seite"
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr "Zur nächsten Seriennummer wechseln"
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr "Verfügbare Menge"
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1693
+msgid "No location set"
+msgstr "Kein Lagerort gesetzt"
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr "Tests"
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+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:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr "abgelaufen"
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+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:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr "überfällig"
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1832
+msgid "Last Updated"
+msgstr "Zuletzt aktualisiert"
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr "Letzte Inventur"
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr "Keine Inventur ausgeführt"
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr "Bestandsstatus bearbeiten"
 
@@ -6488,8 +6484,8 @@ msgstr "Sie sind nicht auf der Liste der Besitzer dieses Lagerorts. Der Bestands
 msgid "Sublocations"
 msgstr "Unter-Lagerorte"
 
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:198 users/models.py:40
 msgid "Stock Locations"
 msgstr "Bestand-Lagerorte"
 
@@ -6541,7 +6537,7 @@ msgstr "Zuweisungen"
 msgid "Child Items"
 msgstr "Untergeordnete Objekte"
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr "Lagerartikel umwandeln"
 
@@ -6566,55 +6562,55 @@ msgstr "Diese Aktion kann nicht einfach rückgängig gemacht werden"
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr "Sind Sie sicher, dass Sie diesen Lagerartikel-Verfolgungs-Eintrag löschen wollen?"
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr "QR-Code für diesen Lagerort"
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr "zurück ins Lager"
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr "gültigen Lagerort angeben"
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr "Lagerartikel retoure vom Kunden"
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr "alle Testdaten löschen"
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr "Löschen Testdaten bestätigen"
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr "Bestätigungsbox bestätigen"
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr "Lagerartikel-QR-Code"
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr "Bestand-Lagerort löschen"
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr "Lagerartikel löschen"
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr "Bestand-Tracking-Eintrag löschen"
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr "Bestand-Verfolgungs-Eintrag bearbeiten"
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr "Bestand-Verfolgungs-Eintrag hinzufügen"
 
@@ -7333,9 +7329,9 @@ msgstr "InvenTree-Versionsinformationen"
 
 #: templates/about.html:11 templates/about.html:105
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr "Schliessen"
@@ -7604,14 +7600,14 @@ msgid "The following parts are low on required stock"
 msgstr "Bei den folgenden Teilen gibt es wenige Lagerartikel"
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
 msgid "Required Quantity"
 msgstr "Benötigte Menge"
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
 #: templates/js/translated/part.js:530
 #: templates/js/translated/table_filters.js:178
 msgid "Available"
@@ -7646,67 +7642,67 @@ 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:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
 msgid "No Response"
 msgstr "Keine Antwort"
 
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
 msgid "No response from the InvenTree server"
 msgstr "keine Antwort vom InvenTree Server"
 
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
 msgid "Error 400: Bad request"
 msgstr "Fehler 400: Fehlerhafte Anfrage"
 
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
 msgid "API request returned error code 400"
 msgstr "Fehler-Code 400 zurückgegeben"
 
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
 msgid "Error 401: Not Authenticated"
 msgstr "Fehler 401: Nicht Angemeldet"
 
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
 msgid "Authentication credentials not supplied"
 msgstr "Authentication Kredentials nicht angegeben"
 
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
 msgid "Error 403: Permission Denied"
 msgstr "Fehler 403: keine Berechtigung"
 
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
 msgid "You do not have the required permissions to access this function"
 msgstr "Fehlende Berechtigung für diese Aktion"
 
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
 msgid "Error 404: Resource Not Found"
 msgstr "Fehler 404: Ressource nicht gefunden"
 
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
 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:217
+#: templates/js/translated/api.js:262
 msgid "Error 405: Method Not Allowed"
 msgstr "Fehler 405: Methode nicht erlaubt"
 
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
 msgid "HTTP method not allowed at URL"
 msgstr "HTTP-Methode für diese URL nicht erlaubt"
 
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
 msgid "Error 408: Timeout"
 msgstr "Fehler 408: Zeitüberschreitung"
 
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
 msgid "Connection timeout while requesting data from server"
 msgstr "Verbindungszeitüberschreitung bei der Datenanforderung"
 
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
 msgid "Unhandled Error Code"
 msgstr "Unbehandelter Fehler-Code"
 
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
 msgid "Error code"
 msgstr "Fehler-Code"
 
@@ -7767,7 +7763,7 @@ msgid "Unknown response from server"
 msgstr "Unbekannte Antwort von Server erhalten"
 
 #: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "Invalid server response"
 msgstr "Ungültige Antwort von Server"
 
@@ -7849,12 +7845,12 @@ msgid "Download BOM Template"
 msgstr "Vorlage einer Stückliste herunterladen"
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
 msgid "Format"
 msgstr "Format"
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr "Dateiformat auswählen"
 
@@ -7934,84 +7930,84 @@ msgstr "Stücklisten Ersatzteile bearbeiten"
 msgid "All selected BOM items will be deleted"
 msgstr "Alle ausgewählte Stücklistenpositionen werden gelöscht"
 
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
 msgid "Delete selected BOM items?"
 msgstr "Ausgewählte Stücklistenpositionen löschen?"
 
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
 msgid "Load BOM for subassembly"
 msgstr "Stückliste für Bauteile laden"
 
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
 msgid "Substitutes Available"
 msgstr "Ersatzteile verfügbar"
 
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
 msgid "Variant stock allowed"
 msgstr "Varianten erlaubt"
 
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
 msgid "No Stock Available"
 msgstr "Kein Lagerbestand verfügbar"
 
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
 msgid "Includes variant and substitute stock"
 msgstr "Beinhaltet Variante und Ersatzbestand"
 
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
 #: templates/js/translated/part.js:690
 msgid "Includes variant stock"
 msgstr "Beinhaltet Variantenbestand"
 
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
 msgid "Includes substitute stock"
 msgstr "Enthält Ersatzbestand"
 
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
 msgid "Substitutes"
 msgstr "Ersatzteile"
 
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
 msgid "Purchase Price Range"
 msgstr "Kaufpreisspanne"
 
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
 msgid "Purchase Price Average"
 msgstr "Durchschnittlicher Kaufpreis"
 
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
 msgid "View BOM"
 msgstr "Stückliste anzeigen"
 
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
 msgid "Validate BOM Item"
 msgstr "Stücklisten-Position kontrollieren"
 
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
 msgid "This line has been validated"
 msgstr "Diese Position wurde kontrolliert"
 
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
 msgid "Edit substitute parts"
 msgstr "Ersatzteile bearbeiten"
 
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
 msgid "Edit BOM Item"
 msgstr "Stücklisten-Position bearbeiten"
 
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
 msgid "Delete BOM Item"
 msgstr "Stücklisten-Position löschen"
 
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
 msgid "No BOM items found"
 msgstr "Keine Stücklisten-Position(en) gefunden"
 
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
 msgid "Required Part"
 msgstr "benötigtes Teil"
 
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
 msgid "Inherited from parent BOM"
 msgstr "Geerbt von übergeordneter Stückliste"
 
@@ -8133,262 +8129,270 @@ msgstr "Keine Allokationen für Bauauftrag gefunden"
 msgid "Location not specified"
 msgstr "Standort nicht angegeben"
 
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
 msgid "No active build outputs found"
 msgstr "Keine aktiven Endprodukte gefunden"
 
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
 msgid "Allocated Stock"
 msgstr "Bestand zuteilen"
 
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
 msgid "No tracked BOM items for this build"
 msgstr "Keine nachverfolgten Stücklisten-Einträge für diesen Bauauftrag"
 
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
 msgid "Completed Tests"
 msgstr "Abgeschlossene Tests"
 
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
 msgid "No required tests for this build"
 msgstr "Keine erforderlichen Tests für diesen Bauauftrag"
 
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
 msgid "Edit stock allocation"
 msgstr "Bestands-Zuordnung bearbeiten"
 
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
 msgid "Delete stock allocation"
 msgstr "Bestands-Zuordnung löschen"
 
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
 msgid "Edit Allocation"
 msgstr "Zuordnung bearbeiten"
 
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
 msgid "Remove Allocation"
 msgstr "Zuordnung entfernen"
 
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
 msgid "Substitute parts available"
 msgstr "Ersatzteile verfügbar"
 
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
 msgid "Quantity Per"
 msgstr "Anzahl pro"
 
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
 msgid "Insufficient stock available"
 msgstr "Unzureichender Bestand verfügbar"
 
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
 msgid "Sufficient stock available"
 msgstr "Ausreichender Bestand verfügbar"
 
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
 msgid "Allocated"
 msgstr "Zugeordnet"
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
 msgid "Build stock"
 msgstr "Bestand bauen"
 
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
 msgid "Order stock"
 msgstr "Bestand bestellen"
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
 msgid "Allocate stock"
 msgstr "Bestand zuweisen"
 
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr "Teile auswählen"
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
 msgid "You must select at least one part to allocate"
 msgstr "Sie müssen mindestens ein Teil auswählen"
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
 msgid "Specify stock allocation quantity"
 msgstr "Anzahl für Bestandszuordnung eingeben"
 
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
 msgid "All Parts Allocated"
 msgstr "Alle Teile zugeordnet"
 
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
 msgid "All selected parts have been fully allocated"
 msgstr "Alle ausgewählten Teile wurden vollständig zugeordnet"
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
 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:2117
+#: templates/js/translated/build.js:2100
 msgid "Allocate Stock Items to Build Order"
 msgstr "Lagerartikel für Bauauftrag zuweisen"
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
 msgid "No matching stock locations"
 msgstr "Keine passenden Lagerstandorte"
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
 msgid "No matching stock items"
 msgstr "Keine passenden Lagerbestände"
 
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
 msgid "Automatic Stock Allocation"
 msgstr "Automatische Lagerzuordnung"
 
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
 msgstr "Lagerartikel werden automatisch diesem Bauauftrag zugewiesen, entsprechend den angegebenen Richtlinien"
 
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
 msgid "If a location is specifed, stock will only be allocated from that location"
 msgstr "Wenn ein Standort angegeben ist, wird der Lagerbestand nur von diesem Ort zugewiesen"
 
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
 msgstr "Wenn der Lagerbestand als austauschbar gilt, wird er vom ersten Standort zugewiesen, an dem er gefunden wird"
 
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
 msgstr "Wenn ein Ersatzbestand erlaubt ist, wird es dort verwendet, wo kein Vorrat des Primärteils gefunden werden kann"
 
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
 msgid "Allocate Stock Items"
 msgstr "Lagerartikel zuordnen"
 
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
 msgid "No builds matching query"
 msgstr "Keine Bauaufträge passen zur Anfrage"
 
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
 msgid "Select"
 msgstr "Auswählen"
 
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
 msgid "Build order is overdue"
 msgstr "Bauauftrag ist überfällig"
 
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
 msgid "Progress"
 msgstr "Fortschritt"
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
 msgid "No user information"
 msgstr "Keine Benutzerinformation"
 
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
 msgid "No information"
 msgstr "Keine Information"
 
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
 msgid "No parts allocated for"
 msgstr "Keine Teile zugeordnet zu"
 
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
 msgid "Add Manufacturer"
 msgstr "Hersteller hinzufügen"
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
 msgid "Add Manufacturer Part"
 msgstr "Herstellerteil hinzufügen"
 
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
 msgid "Edit Manufacturer Part"
 msgstr "Herstellerteil ändern"
 
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr "Herstellerteil löschen"
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr "Zulieferer hinzufügen"
 
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
 msgid "Add Supplier Part"
 msgstr "Zuliefererteil hinzufügen"
 
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
 msgid "Edit Supplier Part"
 msgstr "Zuliefererteil bearbeiten"
 
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
+msgstr "Alle ausgewählten Zulieferteile werden gelöscht"
+
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
 msgstr "Zuliefererteil entfernen"
 
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:342
 msgid "Add new Company"
 msgstr "Neue Firma hinzufügen"
 
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
 msgid "Parts Supplied"
 msgstr "Teile geliefert"
 
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
 msgid "Parts Manufactured"
 msgstr "Hersteller-Teile"
 
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
 msgid "No company information found"
 msgstr "Keine Firmeninformation gefunden"
 
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
-msgstr "Die folgenden Herstellerteile werden gelöscht"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
+msgstr "Alle ausgewählten Herstellerrteile werden gelöscht"
 
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
 msgid "Delete Manufacturer Parts"
 msgstr "Herstellerteile löschen"
 
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr "Alle ausgewählten Parameter werden gelöscht"
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr "Parameter löschen"
+
+#: templates/js/translated/company.js:595
 msgid "No manufacturer parts found"
 msgstr "Keine Herstellerteile gefunden"
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
 #: templates/js/translated/part.js:650
 msgid "Template part"
 msgstr "Vorlagenteil"
 
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
 #: templates/js/translated/part.js:654
 msgid "Assembled part"
 msgstr "Baugruppe"
 
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
 msgid "No parameters found"
 msgstr "Keine Parameter gefunden"
 
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
 msgid "Edit parameter"
 msgstr "Parameter bearbeiten"
 
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
 msgid "Delete parameter"
 msgstr "Parameter löschen"
 
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
 msgid "Edit Parameter"
 msgstr "Parameter bearbeiten"
 
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
 msgid "Delete Parameter"
 msgstr "Parameter löschen"
 
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
 msgid "No supplier parts found"
 msgstr "Keine Zuliefererteile gefunden"
 
@@ -8426,61 +8430,61 @@ msgstr "Filter entfernen"
 msgid "Create filter"
 msgstr "Filter anlegen"
 
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
 msgid "Action Prohibited"
 msgstr "Aktion verboten"
 
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
 msgid "Create operation not allowed"
 msgstr "Erstellvorgang nicht erlaubt"
 
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
 msgid "Update operation not allowed"
 msgstr "Updatevorgang nicht erlaubt"
 
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
 msgid "Delete operation not allowed"
 msgstr "Löschvorgang nicht erlaubt"
 
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
 msgid "View operation not allowed"
 msgstr "Anzeigevorgang nicht erlaubt"
 
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
 msgid "Keep this form open"
 msgstr "Dieses Formular offen lassen"
 
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
 msgid "Enter a valid number"
 msgstr "Gib eine gültige Nummer ein"
 
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
 #: templates/modals.html:43
 msgid "Form errors exist"
 msgstr "Fehler in Formular"
 
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
 msgid "No results found"
 msgstr "Keine Ergebnisse gefunden"
 
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
 msgid "Searching"
 msgstr "Suche"
 
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
 msgid "Clear input"
 msgstr "Eingabe leeren"
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "File Column"
 msgstr "Dateispalte"
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "Field Name"
 msgstr "Feldname"
 
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
 msgid "Select Columns"
 msgstr "Spalten auswählen"
 
@@ -8554,62 +8558,62 @@ msgstr "Lagerartikel ausgewählt"
 msgid "Select Label Template"
 msgstr "Label-Vorlage auswählen"
 
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
 msgid "Cancel"
 msgstr "Abbrechen"
 
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
 #: templates/modals.html:28 templates/modals.html:51
 msgid "Submit"
 msgstr "Abschicken"
 
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
 msgid "Form Title"
 msgstr "Formulartitel"
 
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
 msgid "Waiting for server..."
 msgstr "Warte auf Server..."
 
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
 msgid "Show Error Information"
 msgstr "Fehler-Informationen anzeigen"
 
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
 msgid "Accept"
 msgstr "Akzeptieren"
 
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
 msgid "Loading Data"
 msgstr "Lade Daten"
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Invalid response from server"
 msgstr "ungültige Antwort vom Server"
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Form data missing from server response"
 msgstr "Formulardaten fehlen bei Serverantwort"
 
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
 msgid "Error posting form data"
 msgstr "Formulardaten fehlerhaft"
 
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "JSON response missing form data"
 msgstr "JSON Antwort enthält keine Formulardaten"
 
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
 msgid "Error 400: Bad Request"
 msgstr "Fehler 400: Ungültige Anfrage"
 
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
 msgid "Server returned error code 400"
 msgstr "Fehler 400 von Server erhalten"
 
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
 msgid "Error requesting form data"
 msgstr "Fehler bei Formulardaten-Anfrage"
 
@@ -8667,377 +8671,381 @@ msgstr "Keine ungelesenen Benachrichtigungen"
 msgid "Notifications will load here"
 msgstr "Benachrichtigungen erscheinen hier"
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr "Dieser Sendung wurden keine Artikel zugewiesen"
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr "Die folgenden Artikel werden verschickt"
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr "Sendung fertigstellen"
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr "Sendung bestätigen"
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
-msgstr ""
+msgstr "Keine ausstehenden Sendungen gefunden"
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
-msgstr ""
+msgstr "Keine Lagerartikel für offene Sendungen zugewiesen"
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
-msgstr ""
+msgstr "Überspringen"
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr "Bestellung vervollständigen"
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr "Diese Bestellung als vollständig markieren?"
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr "Alle Einträge wurden erhalten"
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr "Diese Bestellung enthält Positionen, die nicht als empfangen markiert wurden."
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr "Fertigstellen dieser Bestellung bedeutet, dass sie und ihre Positionen nicht länger bearbeitbar sind."
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr "Bestellung abbrechen"
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr "Sind Sie sicher, dass Sie diese Bestellung abbrechen möchten?"
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr "Diese Bestellung kann nicht storniert werden"
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr "Bestellung aufgeben"
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr "Nachdem diese Bestellung plaziert ist können die Positionen nicht länger bearbeitbar ist."
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr "Auftrag stornieren"
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr "Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar ist."
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr "Sendung anlegen"
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr "Kunden hinzufügen"
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr "Auftrag anlegen"
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr "Bestellung exportieren"
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr "Mindestens ein kaufbares Teil muss ausgewählt werden"
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr "Zu bestellende Menge"
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr "Neues Zuliefererteil"
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr "Neue Bestellung"
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr "Zur Bestellung hinzufügen"
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr "Keine passenden Lieferantenteile"
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr "Keine passenden Bestellungen"
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr "Positionen auswählen"
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr "Mindestens eine Position muss ausgewählt werden"
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr "Losnummer hinzufügen"
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr "Seriennummern hinzufügen"
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr "Zu erhaltende Menge"
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
 msgid "Stock Status"
 msgstr "Status"
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr "Bestellnummer"
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr "Bestellt"
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr "Zu erhaltende Menge"
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr "Empfang der Teile bestätigen"
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr "Bestellpositionen erhalten"
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr "Keine Bestellungen gefunden"
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
 msgid "Order is overdue"
 msgstr "Bestellung überfällig"
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
 msgid "Items"
 msgstr "Positionen"
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
 msgid "Duplicate Line Item"
 msgstr "Position duplizieren"
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
 msgid "Edit Line Item"
 msgstr "Position bearbeiten"
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
 msgid "Delete Line Item"
 msgstr "Position löschen"
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1856
 msgid "No line items found"
 msgstr "Keine Positionen gefunden"
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
 msgid "Total"
 msgstr "Summe"
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr "Stück-Preis"
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
 msgid "Total Price"
 msgstr "Gesamtpreis"
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr "Diese Position ist überfällig"
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr "Position empfangen"
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
 msgid "Duplicate line item"
 msgstr "Position duplizieren"
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
 msgid "Edit line item"
 msgstr "Position bearbeiten"
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
 msgid "Delete line item"
 msgstr "Position löschen"
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
 msgid "Duplicate line"
 msgstr "Position duplizieren"
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
 msgid "Edit line"
 msgstr "Zeile bearbeiten"
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
 msgid "Delete line"
 msgstr "Zeile löschen"
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
 msgid "Duplicate Line"
 msgstr "Position duplizieren"
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
 msgid "Edit Line"
 msgstr "Zeile bearbeiten"
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
 msgid "Delete Line"
 msgstr "Zeile löschen"
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2279
 msgid "No matching line"
 msgstr "Keine passenden Positionen gefunden"
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2392
 msgid "No sales orders found"
 msgstr "Keine Aufträge gefunden"
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2462
 msgid "Invalid Customer"
 msgstr "Ungültiger Kunde"
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2549
 msgid "Edit shipment"
 msgstr "Sendung bearbeiten"
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2552
 msgid "Complete shipment"
 msgstr "Sendung fertigstellen"
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2557
 msgid "Delete shipment"
 msgstr "Sendung löschen"
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2577
 msgid "Edit Shipment"
 msgstr "Sendung bearbeiten"
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2594
 msgid "Delete Shipment"
 msgstr "Sendung löschen"
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2628
 msgid "No matching shipments found"
 msgstr "Keine passenden Sendungen gefunden"
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2638
 msgid "Shipment Reference"
 msgstr "Sendungsreferenz"
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2662
 msgid "Not shipped"
 msgstr "Nicht versandt"
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2668
 msgid "Tracking"
 msgstr "Nachverfolgen"
 
-#: templates/js/translated/order.js:2603
-msgid "Add Shipment"
-msgstr ""
+#: templates/js/translated/order.js:2672
+msgid "Invoice"
+msgstr "Rechnung"
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2841
+msgid "Add Shipment"
+msgstr "Sendung hinzufügen"
+
+#: templates/js/translated/order.js:2892
 msgid "Confirm stock allocation"
 msgstr "Bestandszuordnung bestätigen"
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2893
 msgid "Allocate Stock Items to Sales Order"
 msgstr "Artikel zu Kundenauftrag zuweisen"
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:3101
 msgid "No sales order allocations found"
 msgstr "Keine Allokationen für Verkaufsaufträge gefunden"
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:3182
 msgid "Edit Stock Allocation"
 msgstr "Bestandszuordnung bearbeiten"
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:3199
 msgid "Confirm Delete Operation"
 msgstr "Löschvorgang bestätigen"
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:3200
 msgid "Delete Stock Allocation"
 msgstr "Bestands-Zuordnung löschen"
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
 msgid "Shipped to customer"
 msgstr "an Kunde versand"
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
 msgid "Stock location not specified"
 msgstr "Lagerstandort nicht angegeben"
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3623
 msgid "Allocate serial numbers"
 msgstr "Seriennummern zuweisen"
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3629
 msgid "Purchase stock"
 msgstr "Bestand kaufen"
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
 msgid "Calculate price"
 msgstr "Preis berechnen"
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3648
 msgid "Cannot be deleted as items have been shipped"
 msgstr "Kann nicht gelöscht werden, da Artikel versandt wurden"
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3651
 msgid "Cannot be deleted as items have been allocated"
 msgstr "Kann nicht gelöscht werden, da Artikel zugewiesen sind"
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3733
 msgid "Allocate Serial Numbers"
 msgstr "Seriennummern zuweisen"
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3842
 msgid "Update Unit Price"
 msgstr "Stückpreis aktualisieren"
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3856
 msgid "No matching line items"
 msgstr "Keine passenden Positionen gefunden"
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:4092
 msgid "No matching lines"
 msgstr "Keine passenden Positionen gefunden"
 
@@ -9219,7 +9227,7 @@ msgid "No category"
 msgstr "Keine Kategorie"
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2238
 msgid "Display as list"
 msgstr "Listenansicht"
 
@@ -9227,7 +9235,7 @@ msgstr "Listenansicht"
 msgid "Display as grid"
 msgstr "Rasteransicht"
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
 msgid "Display as tree"
 msgstr "Baumansicht"
 
@@ -9235,7 +9243,7 @@ msgstr "Baumansicht"
 msgid "Subscribed category"
 msgstr "Abonnierte Kategorie"
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
 msgid "Path"
 msgstr "Pfad"
 
@@ -9243,12 +9251,12 @@ msgstr "Pfad"
 msgid "No test templates matching query"
 msgstr "Keine zur Anfrage passenden Testvorlagen"
 
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
 msgid "Edit test result"
 msgstr "Testergebnis bearbeiten"
 
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
 msgid "Delete test result"
 msgstr "Testergebnis löschen"
 
@@ -9369,11 +9377,11 @@ 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/search.js:307
+#: templates/js/translated/search.js:352
 msgid "Minimize results"
 msgstr "Ergebnisse minimieren"
 
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:355
 msgid "Remove results"
 msgstr "Ergebnisse entfernen"
 
@@ -9533,204 +9541,204 @@ msgstr "Sie müssen mindestens einen Lagerartikel auswählen"
 msgid "Confirm stock adjustment"
 msgstr "Bestands-Anpassung bestätigen"
 
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
 msgid "PASS"
 msgstr "ERFOLGREICH"
 
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
 msgid "FAIL"
 msgstr "FEHLGESCHLAGEN"
 
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
 msgid "NO RESULT"
 msgstr "KEIN ERGEBNIS"
 
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
 msgid "Pass test"
 msgstr "Test bestanden"
 
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
 msgid "Add test result"
 msgstr "Testergebnis hinzufügen"
 
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
 msgid "No test results found"
 msgstr "Keine Testergebnisse gefunden"
 
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
 msgid "Test Date"
 msgstr "Testdatum"
 
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
 msgid "Edit Test Result"
 msgstr "Testergebnis bearbeiten"
 
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
 msgid "Delete Test Result"
 msgstr "Testergebnis löschen"
 
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
 msgid "In production"
 msgstr "In Arbeit"
 
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
 msgid "Installed in Stock Item"
 msgstr "In Lagerartikel installiert"
 
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
 msgid "Assigned to Sales Order"
 msgstr "Auftrag zugewiesen"
 
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
 msgid "No stock location set"
 msgstr "Kein Lagerort gesetzt"
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1712
 msgid "Stock item is in production"
 msgstr "Lagerartikel wird produziert"
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1717
 msgid "Stock item assigned to sales order"
 msgstr "Lagerartikel wurde Auftrag zugewiesen"
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1720
 msgid "Stock item assigned to customer"
 msgstr "Lagerartikel wurde Kunden zugewiesen"
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr "Lagerartikel ist abgelaufen"
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr "Lagerartikel läuft demnächst ab"
-
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
 msgid "Serialized stock item has been allocated"
 msgstr "Serialisierter Lagerartikel wurde zugewiesen"
 
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
 msgid "Stock item has been fully allocated"
 msgstr "Lagerartikel wurde vollständig zugewiesen"
 
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
 msgid "Stock item has been partially allocated"
 msgstr "Lagerartikel wurde teilweise zugewiesen"
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1730
 msgid "Stock item has been installed in another item"
 msgstr "Lagerartikel in anderem Element verbaut"
 
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1734
+msgid "Stock item has expired"
+msgstr "Lagerartikel ist abgelaufen"
+
+#: templates/js/translated/stock.js:1736
+msgid "Stock item will expire soon"
+msgstr "Lagerartikel läuft demnächst ab"
+
+#: templates/js/translated/stock.js:1743
 msgid "Stock item has been rejected"
 msgstr "Lagerartikel abgewiesen"
 
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1745
 msgid "Stock item is lost"
 msgstr "Lagerartikel verloren"
 
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1747
 msgid "Stock item is destroyed"
 msgstr "Lagerartikel zerstört"
 
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1751
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr "gelöscht"
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1802
 msgid "Stocktake"
 msgstr "Inventur"
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1884
 msgid "Supplier part not specified"
 msgstr "Zuliefererteil nicht angegeben"
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1922
 msgid "No stock items matching query"
 msgstr "Keine zur Anfrage passenden Lagerartikel"
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2095
 msgid "Set Stock Status"
 msgstr "Status setzen"
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2109
 msgid "Select Status Code"
 msgstr "Status Code setzen"
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2110
 msgid "Status code must be selected"
 msgstr "Status Code muss ausgewählt werden"
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2365
 msgid "Details"
 msgstr "Details"
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2381
 msgid "Part information unavailable"
 msgstr "Artikelinformationen nicht verfügbar"
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2403
 msgid "Location no longer exists"
 msgstr "Standort nicht mehr vorhanden"
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2422
 msgid "Purchase order no longer exists"
 msgstr "Bestellung existiert nicht mehr"
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
 msgid "Customer no longer exists"
 msgstr "Kunde existiert nicht mehr"
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2459
 msgid "Stock item no longer exists"
 msgstr "Lagerartikel existiert nicht mehr"
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2482
 msgid "Added"
 msgstr "Hinzugefügt"
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2490
 msgid "Removed"
 msgstr "Entfernt"
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2566
 msgid "No installed items"
 msgstr "Keine installierten Elemente"
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
 msgid "Uninstall Stock Item"
 msgstr "Lagerartikel entfernen"
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2666
 msgid "Select stock item to uninstall"
 msgstr "Zu deinstallierende Lagerartikel auswählen"
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2687
 msgid "Install another stock item into this item"
 msgstr "Einen weiteren Lagerartikel in dieses Teil installiert"
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2688
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr "Lagerartikel können nur installiert werden wenn folgende Kriterien erfüllt werden"
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2690
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr "Der Lagerartikel ist auf ein Teil verknüpft das in der Stückliste für diesen Lagerartikel ist"
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2691
 msgid "The Stock Item is currently available in stock"
 msgstr "Dieser Lagerartikel ist aktuell vorhanden"
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2692
 msgid "The Stock Item is not already installed in another item"
 msgstr "Der Lagerbestand ist nicht bereits in einem anderen Bestand installiert"
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2693
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr "Der Lagerbestand wird entweder mit einem Batch-Code oder mit Seriennummer verfolgt"
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2706
 msgid "Select part to install"
 msgstr "Teil zur Installation auswählen"
 
@@ -9962,69 +9970,81 @@ msgstr "Verfügbarer Lagerbestand"
 msgid "Purchasable"
 msgstr "Käuflich"
 
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr "Kalender-Ansicht"
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr "Listen-Ansicht"
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr "Baumansicht zeigen"
+
+#: templates/js/translated/tables.js:142
 msgid "Export Table Data"
 msgstr "Tabellendaten exportieren"
 
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
 msgid "Select File Format"
 msgstr "Dateiformat wählen"
 
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
 msgid "Loading data"
 msgstr "Lade Daten"
 
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
 msgid "rows per page"
 msgstr "Zeilen pro Seite"
 
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
 msgid "Showing all rows"
 msgstr "Alle Zeilen anzeigen"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "Showing"
 msgstr "zeige"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "to"
 msgstr "bis"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "of"
 msgstr "von"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "rows"
 msgstr "Zeilen"
 
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
 #: templates/search.html:8 templates/search_form.html:6
 #: templates/search_form.html:7
 msgid "Search"
 msgstr "Suche"
 
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
 msgid "No matching results"
 msgstr "Keine passenden Ergebnisse gefunden"
 
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
 msgid "Hide/Show pagination"
 msgstr "Zeige/Verstecke Pagination"
 
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
 msgid "Refresh"
 msgstr "Neu laden"
 
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
 msgid "Toggle"
 msgstr "umschalten"
 
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
 msgid "Columns"
 msgstr "Spalten"
 
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
 msgid "All"
 msgstr "Alle"
 
diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po
index c0e5982f75..f42ab8f401 100644
--- a/InvenTree/locale/el/LC_MESSAGES/django.po
+++ b/InvenTree/locale/el/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
-"PO-Revision-Date: 2022-05-24 01:42\n"
+"POT-Creation-Date: 2022-05-28 23:41+0000\n"
+"PO-Revision-Date: 2022-05-29 01:47\n"
 "Last-Translator: \n"
 "Language-Team: Greek\n"
 "Language: el_GR\n"
@@ -21,7 +21,7 @@ msgstr ""
 msgid "API endpoint not found"
 msgstr ""
 
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
 msgid "Error details can be found in the admin panel"
 msgstr ""
 
@@ -30,7 +30,7 @@ msgid "Enter date"
 msgstr ""
 
 #: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
 msgid "Confirm"
 msgstr ""
 
@@ -79,7 +79,7 @@ msgstr ""
 msgid "Duplicate serial: {sn}"
 msgstr ""
 
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
 msgid "Invalid quantity provided"
 msgstr ""
 
@@ -134,10 +134,12 @@ msgid "Select file to attach"
 msgstr ""
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:139 order/models.py:1273
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr ""
 
@@ -159,7 +161,7 @@ msgstr ""
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2513
 msgid "User"
 msgstr ""
 
@@ -205,9 +207,10 @@ msgstr ""
 #: templates/InvenTree/settings/plugin.html:132
 #: templates/InvenTree/settings/plugin_settings.html:23
 #: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2283
 msgid "Name"
 msgstr ""
 
@@ -216,22 +219,22 @@ msgstr ""
 #: company/models.py:575 company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
 #: part/templates/part/part_base.html:167
 #: part/templates/part/set_category.html:14 report/models.py:182
 #: report/models.py:547 report/models.py:586
 #: report/templates/report/inventree_build_order_base.html:118
 #: stock/templates/stock/location.html:103
 #: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
 msgid "Description"
 msgstr ""
 
@@ -406,7 +409,7 @@ msgid "InvenTree system health checks failed"
 msgstr ""
 
 #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
 msgid "Pending"
 msgstr ""
 
@@ -414,141 +417,145 @@ msgstr ""
 msgid "Placed"
 msgstr ""
 
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
 #: order/templates/order/order_base.html:134
 #: order/templates/order/sales_order_base.html:133
 msgid "Complete"
 msgstr ""
 
 #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
 msgid "Cancelled"
 msgstr ""
 
 #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
 msgid "Lost"
 msgstr ""
 
 #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
 msgid "Returned"
 msgstr ""
 
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
 msgid "Shipped"
 msgstr ""
 
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
 msgid "OK"
 msgstr ""
 
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
 msgid "Attention needed"
 msgstr ""
 
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
 msgid "Damaged"
 msgstr ""
 
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
 msgid "Destroyed"
 msgstr ""
 
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
 msgid "Rejected"
 msgstr ""
 
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
 msgid "Legacy stock tracking entry"
 msgstr ""
 
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
 msgid "Stock item created"
 msgstr ""
 
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
 msgid "Edited stock item"
 msgstr ""
 
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
 msgid "Assigned serial number"
 msgstr ""
 
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
 msgid "Stock counted"
 msgstr ""
 
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
 msgid "Stock manually added"
 msgstr ""
 
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
 msgid "Stock manually removed"
 msgstr ""
 
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
 msgid "Location changed"
 msgstr ""
 
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
 msgid "Installed into assembly"
 msgstr ""
 
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
 msgid "Removed from assembly"
 msgstr ""
 
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
 msgid "Installed component item"
 msgstr ""
 
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
 msgid "Removed component item"
 msgstr ""
 
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
 msgid "Split from parent item"
 msgstr ""
 
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
 msgid "Merged stock items"
 msgstr ""
 
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
 msgid "Converted to variant"
 msgstr ""
 
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
 msgid "Sent to customer"
 msgstr ""
 
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
 msgid "Returned from customer"
 msgstr ""
 
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
 msgid "Build order output created"
 msgstr ""
 
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
 msgid "Build order output completed"
 msgstr ""
 
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
 msgid "Consumed by build order"
 msgstr ""
 
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
 msgid "Received against purchase order"
 msgstr ""
 
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
 msgid "Production"
 msgstr ""
 
@@ -637,15 +644,15 @@ msgstr ""
 msgid "Build Order Reference"
 msgstr ""
 
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
 #: part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
 msgid "Reference"
 msgstr ""
 
@@ -664,7 +671,7 @@ msgstr ""
 
 #: build/models.py:225 build/templates/build/build_base.html:77
 #: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
 #: part/models.py:2303 part/models.py:2319 part/models.py:2338
 #: part/models.py:2355 part/models.py:2457 part/models.py:2579
 #: part/models.py:2669 part/models.py:2760 part/models.py:3050
@@ -679,19 +686,21 @@ msgstr ""
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
 #: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
 msgid "Part"
 msgstr ""
 
@@ -708,7 +717,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr ""
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
 msgid "Source Location"
 msgstr ""
 
@@ -749,7 +758,7 @@ msgid "Build status code"
 msgstr ""
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr ""
 
@@ -757,12 +766,12 @@ msgstr ""
 msgid "Batch code for this build output"
 msgstr ""
 
-#: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
 msgid "Creation Date"
 msgstr ""
 
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
 msgid "Target completion date"
 msgstr ""
 
@@ -770,8 +779,8 @@ msgstr ""
 msgid "Target date for build completion. Build will be overdue after this date."
 msgstr ""
 
-#: build/models.py:300 order/models.py:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
 msgid "Completion Date"
 msgstr ""
 
@@ -779,7 +788,7 @@ msgstr ""
 msgid "completed by"
 msgstr ""
 
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
 msgid "Issued by"
 msgstr ""
 
@@ -788,11 +797,11 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
 msgid "Responsible"
 msgstr ""
 
@@ -804,14 +813,14 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr ""
 
 #: build/models.py:334 build/serializers.py:390
 #: build/templates/build/sidebar.html:21 company/models.py:134
 #: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
 #: order/templates/order/po_sidebar.html:11
 #: order/templates/order/so_sidebar.html:17 part/models.py:983
 #: part/templates/part/part_sidebar.html:59
@@ -820,11 +829,11 @@ msgstr ""
 #: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
 msgid "Notes"
 msgstr ""
 
@@ -857,7 +866,7 @@ msgstr ""
 msgid "Stock item is over-allocated"
 msgstr ""
 
-#: build/models.py:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1413
 msgid "Allocation quantity must be greater than zero"
 msgstr ""
 
@@ -869,8 +878,8 @@ msgstr ""
 msgid "Selected stock item not found in BOM"
 msgstr ""
 
-#: build/models.py:1375 stock/templates/stock/item_base.html:335
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
 #: templates/navbar.html:38
 msgid "Build"
 msgstr ""
@@ -879,18 +888,18 @@ msgstr ""
 msgid "Build to allocate parts"
 msgstr ""
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2449
 msgid "Stock Item"
 msgstr ""
 
@@ -902,10 +911,10 @@ msgstr ""
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_build_order_base.html:114
@@ -913,25 +922,24 @@ 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
 msgid "Quantity"
 msgstr ""
 
@@ -948,7 +956,7 @@ msgid "Destination stock item"
 msgstr ""
 
 #: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
 msgid "Build Output"
 msgstr ""
 
@@ -972,7 +980,7 @@ msgstr ""
 msgid "Enter quantity for build output"
 msgstr ""
 
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
 #: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
 #: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
 #: stock/serializers.py:294
@@ -987,8 +995,8 @@ msgstr ""
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr ""
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr ""
@@ -1015,15 +1023,15 @@ msgstr ""
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
 msgid "Location"
 msgstr ""
 
@@ -1032,12 +1040,12 @@ msgid "Location for completed build outputs"
 msgstr ""
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: build/templates/build/detail.html:62 order/models.py:663
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
 msgid "Status"
 msgstr ""
 
@@ -1118,7 +1126,7 @@ msgstr ""
 msgid "Item must be in stock"
 msgstr ""
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr ""
@@ -1135,7 +1143,7 @@ msgstr ""
 msgid "This stock item has already been allocated to this build output"
 msgstr ""
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr ""
 
@@ -1233,13 +1241,13 @@ msgid "Stock has not been fully allocated to this Build Order"
 msgstr ""
 
 #: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr ""
 
@@ -1266,14 +1274,14 @@ msgid "Completed"
 msgstr ""
 
 #: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2436
 msgid "Sales Order"
 msgstr ""
 
@@ -1308,8 +1316,8 @@ msgstr ""
 msgid "Stock can be taken from any available location."
 msgstr ""
 
-#: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
 msgid "Destination"
 msgstr ""
 
@@ -1322,11 +1330,11 @@ msgid "Allocated Parts"
 msgstr ""
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
-#: templates/js/translated/build.js:1184
+#: stock/templates/stock/item_base.html:170
+#: templates/js/translated/build.js:1179
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1335,7 +1343,7 @@ msgstr ""
 #: build/templates/build/detail.html:126
 #: order/templates/order/order_base.html:149
 #: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
 msgid "Created"
 msgstr ""
 
@@ -1355,7 +1363,7 @@ msgstr ""
 msgid "Allocate Stock to Build"
 msgstr ""
 
-#: build/templates/build/detail.html:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
 msgid "Unallocate stock"
 msgstr ""
 
@@ -1385,8 +1393,8 @@ msgstr ""
 
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: company/templates/company/detail.html:85
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr ""
 
@@ -1461,8 +1469,8 @@ msgid "Completed Build Outputs"
 msgstr ""
 
 #: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
 #: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:82
 #: order/templates/order/sales_order_detail.html:129
@@ -1476,11 +1484,11 @@ msgstr ""
 msgid "Build Notes"
 msgstr ""
 
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
 msgid "Allocation Complete"
 msgstr ""
 
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
@@ -1492,18 +1500,6 @@ msgstr ""
 msgid "Print Build Orders"
 msgstr ""
 
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr ""
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr ""
-
 #: build/templates/build/sidebar.html:5
 msgid "Build Order Details"
 msgstr ""
@@ -1727,7 +1723,7 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
 #: templates/js/translated/table_filters.js:168
 #: templates/js/translated/table_filters.js:460
 msgid "Assembly"
@@ -2413,7 +2409,7 @@ msgid "Price break quantity"
 msgstr ""
 
 #: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: company/templates/company/supplier_part.html:263 order/models.py:975
 #: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
 msgid "Price"
 msgstr ""
@@ -2556,7 +2552,7 @@ msgstr ""
 
 #: company/models.py:104 company/templates/company/company_base.html:100
 #: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
 msgid "Website"
 msgstr ""
 
@@ -2651,10 +2647,11 @@ msgstr ""
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: stock/templates/stock/item_base.html:212
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
 #: templates/js/translated/table_filters.js:411
 msgid "Manufacturer"
 msgstr ""
@@ -2665,8 +2662,10 @@ msgstr ""
 
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr ""
@@ -2686,7 +2685,7 @@ msgstr ""
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr ""
 
@@ -2696,8 +2695,9 @@ msgstr ""
 
 #: company/models.py:427
 #: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
 msgid "Value"
 msgstr ""
 
@@ -2708,7 +2708,7 @@ msgstr ""
 #: company/models.py:434 part/models.py:940 part/models.py:2549
 #: part/templates/part/part_base.html:280
 #: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
 msgid "Units"
 msgstr ""
 
@@ -2721,11 +2721,12 @@ msgid "Linked manufacturer part must reference the same base part"
 msgstr ""
 
 #: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: stock/templates/stock/item_base.html:229
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2736,8 +2737,9 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
 msgid "SKU"
 msgstr ""
 
@@ -2773,8 +2775,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr ""
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
 msgid "Packaging"
 msgstr ""
 
@@ -2804,12 +2806,12 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
 msgid "Company"
 msgstr ""
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr ""
 
@@ -2822,7 +2824,7 @@ msgid "Edit company information"
 msgstr ""
 
 #: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
 msgid "Edit Company"
 msgstr ""
 
@@ -2845,12 +2847,12 @@ msgstr ""
 msgid "Download image from URL"
 msgstr ""
 
-#: company/templates/company/company_base.html:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr ""
@@ -2869,7 +2871,7 @@ msgid "Upload Image"
 msgstr ""
 
 #: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
+#: company/templates/company/manufacturer_part_sidebar.html:7
 #: templates/InvenTree/search.html:118
 msgid "Supplier Parts"
 msgstr ""
@@ -2884,28 +2886,19 @@ msgstr ""
 msgid "New Supplier Part"
 msgstr ""
 
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr ""
-
 #: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
 #: part/templates/part/category.html:176
 msgid "Order parts"
 msgstr ""
 
 #: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
 msgid "Delete parts"
 msgstr ""
 
 #: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
 msgid "Delete Parts"
 msgstr ""
 
@@ -2917,88 +2910,76 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
 msgid "New Manufacturer Part"
 msgstr ""
 
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
 msgid "Supplier Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
 #: company/templates/company/sidebar.html:12
 #: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
 #: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:235 templates/navbar.html:50
 #: users/models.py:43
 msgid "Purchase Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
 #: order/templates/order/purchase_orders.html:17
 msgid "Create new purchase order"
 msgstr ""
 
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr ""
 
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
 #: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
 #: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
 #: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:259 templates/navbar.html:61
 #: users/models.py:44
 msgid "Sales Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
 #: order/templates/order/sales_orders.html:20
 msgid "Create new sales order"
 msgstr ""
 
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
 #: order/templates/order/sales_orders.html:21
 msgid "New Sales Order"
 msgstr ""
 
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
 msgid "Assigned Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
 msgid "Company Notes"
 msgstr ""
 
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr ""
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr ""
-
 #: company/templates/company/index.html:8
 msgid "Supplier List"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
 #: templates/navbar.html:49
 msgid "Manufacturers"
 msgstr ""
@@ -3011,12 +2992,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -3032,55 +3013,46 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:119
 #: company/templates/company/supplier_part.html:15 company/views.py:41
 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
 msgid "Suppliers"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
 #: part/templates/part/detail.html:363
 msgid "Delete supplier parts"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
 msgid "Delete"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:164
+#: company/templates/company/manufacturer_part.html:166
 #: company/templates/company/manufacturer_part_sidebar.html:5
 #: part/templates/part/category_sidebar.html:19
 #: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8
 msgid "Parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
 #: part/templates/part/detail.html:184
 #: templates/InvenTree/settings/category.html:12
 #: templates/InvenTree/settings/part.html:66
 msgid "New Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
 msgid "Delete parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
 msgid "Add Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr ""
-
 #: company/templates/company/sidebar.html:6
 msgid "Manufactured Parts"
 msgstr ""
@@ -3099,19 +3071,19 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
 msgid "Delete supplier part"
 msgstr ""
 
@@ -3186,11 +3158,11 @@ msgstr ""
 #: part/templates/part/part_sidebar.html:14
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
 #: templates/InvenTree/settings/sidebar.html:43
 #: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
 #: templates/navbar.html:31
 msgid "Stock"
 msgstr ""
@@ -3216,8 +3188,8 @@ msgstr ""
 #: stock/templates/stock/location.html:161
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
+#: templates/js/translated/stock.js:2307 users/models.py:41
 msgid "Stock Items"
 msgstr ""
 
@@ -3229,7 +3201,7 @@ msgstr ""
 msgid "New Manufacturer"
 msgstr ""
 
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
 #: templates/navbar.html:60
 msgid "Customers"
 msgstr ""
@@ -3238,7 +3210,7 @@ msgstr ""
 msgid "New Customer"
 msgstr ""
 
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:212
 msgid "Companies"
 msgstr ""
 
@@ -3328,305 +3300,313 @@ msgstr ""
 msgid "Part query filters (comma-separated value of key=value pairs)"
 msgstr ""
 
-#: order/models.py:130
+#: order/models.py:137
 msgid "Order description"
 msgstr ""
 
-#: order/models.py:132
+#: order/models.py:139 order/models.py:1274
 msgid "Link to external page"
 msgstr ""
 
-#: order/models.py:140
+#: order/models.py:147
 msgid "Created By"
 msgstr ""
 
-#: order/models.py:147
+#: order/models.py:154
 msgid "User or group responsible for this order"
 msgstr ""
 
-#: order/models.py:152
+#: order/models.py:159
 msgid "Order notes"
 msgstr ""
 
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
 msgid "Order reference"
 msgstr ""
 
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
 msgid "Purchase order status"
 msgstr ""
 
-#: order/models.py:253
+#: order/models.py:311
 msgid "Company from which the items are being ordered"
 msgstr ""
 
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
 msgid "Supplier Reference"
 msgstr ""
 
-#: order/models.py:256
+#: order/models.py:314
 msgid "Supplier order reference code"
 msgstr ""
 
-#: order/models.py:263
+#: order/models.py:321
 msgid "received by"
 msgstr ""
 
-#: order/models.py:268
+#: order/models.py:326
 msgid "Issue Date"
 msgstr ""
 
-#: order/models.py:269
+#: order/models.py:327
 msgid "Date order was issued"
 msgstr ""
 
-#: order/models.py:274
+#: order/models.py:332
 msgid "Target Delivery Date"
 msgstr ""
 
-#: order/models.py:275
+#: order/models.py:333
 msgid "Expected date for order delivery. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:281
+#: order/models.py:339
 msgid "Date order was completed"
 msgstr ""
 
-#: order/models.py:310
+#: order/models.py:368
 msgid "Part supplier must match PO supplier"
 msgstr ""
 
-#: order/models.py:456
+#: order/models.py:514
 msgid "Quantity must be a positive number"
 msgstr ""
 
-#: order/models.py:601
+#: order/models.py:659
 msgid "Company to which the items are being sold"
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer Reference "
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer order reference code"
 msgstr ""
 
-#: order/models.py:612
+#: order/models.py:670
 msgid "Target date for order completion. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
 msgid "Shipment Date"
 msgstr ""
 
-#: order/models.py:622
+#: order/models.py:680
 msgid "shipped by"
 msgstr ""
 
-#: order/models.py:688
+#: order/models.py:746
 msgid "Order cannot be completed as no parts have been assigned"
 msgstr ""
 
-#: order/models.py:692
+#: order/models.py:750
 msgid "Only a pending order can be marked as complete"
 msgstr ""
 
-#: order/models.py:695
+#: order/models.py:753
 msgid "Order cannot be completed as there are incomplete shipments"
 msgstr ""
 
-#: order/models.py:698
+#: order/models.py:756
 msgid "Order cannot be completed as there are incomplete line items"
 msgstr ""
 
-#: order/models.py:878
+#: order/models.py:936
 msgid "Item quantity"
 msgstr ""
 
-#: order/models.py:884
+#: order/models.py:942
 msgid "Line item reference"
 msgstr ""
 
-#: order/models.py:886
+#: order/models.py:944
 msgid "Line item notes"
 msgstr ""
 
-#: order/models.py:891
+#: order/models.py:949
 msgid "Target shipping date for this line item"
 msgstr ""
 
-#: order/models.py:909
+#: order/models.py:967
 msgid "Context"
 msgstr ""
 
-#: order/models.py:910
+#: order/models.py:968
 msgid "Additional context for this line"
 msgstr ""
 
-#: order/models.py:918
+#: order/models.py:976
 msgid "Unit price"
 msgstr ""
 
-#: order/models.py:951
+#: order/models.py:1009
 msgid "Supplier part must match supplier"
 msgstr ""
 
-#: order/models.py:958
+#: order/models.py:1016
 msgid "deleted"
 msgstr ""
 
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
 msgid "Order"
 msgstr ""
 
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
 msgid "Purchase Order"
 msgstr ""
 
-#: order/models.py:984
+#: order/models.py:1042
 msgid "Supplier part"
 msgstr ""
 
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
 msgstr ""
 
-#: order/models.py:992
+#: order/models.py:1050
 msgid "Number of items received"
 msgstr ""
 
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1900
 msgid "Purchase Price"
 msgstr ""
 
-#: order/models.py:1000
+#: order/models.py:1058
 msgid "Unit purchase price"
 msgstr ""
 
-#: order/models.py:1008
+#: order/models.py:1066
 msgid "Where does the Purchaser want this item to be stored?"
 msgstr ""
 
-#: order/models.py:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
 #: part/templates/part/prices.html:119 part/templates/part/prices.html:288
 msgid "Sale Price"
 msgstr ""
 
-#: order/models.py:1079
+#: order/models.py:1137
 msgid "Unit sale price"
 msgstr ""
 
-#: order/models.py:1084
+#: order/models.py:1142
 msgid "Shipped quantity"
 msgstr ""
 
-#: order/models.py:1171
+#: order/models.py:1229
 msgid "Date of shipment"
 msgstr ""
 
-#: order/models.py:1178
+#: order/models.py:1236
 msgid "Checked By"
 msgstr ""
 
-#: order/models.py:1179
+#: order/models.py:1237
 msgid "User who checked this shipment"
 msgstr ""
 
-#: order/models.py:1187
+#: order/models.py:1245
 msgid "Shipment number"
 msgstr ""
 
-#: order/models.py:1194
+#: order/models.py:1252
 msgid "Shipment notes"
 msgstr ""
 
-#: order/models.py:1201
+#: order/models.py:1259
 msgid "Tracking Number"
 msgstr ""
 
-#: order/models.py:1202
+#: order/models.py:1260
 msgid "Shipment tracking information"
 msgstr ""
 
-#: order/models.py:1213
+#: order/models.py:1267
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1268
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1285
 msgid "Shipment has already been sent"
 msgstr ""
 
-#: order/models.py:1216
+#: order/models.py:1288
 msgid "Shipment has no allocated stock items"
 msgstr ""
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1395 order/models.py:1397
 msgid "Stock item has not been assigned"
 msgstr ""
 
-#: order/models.py:1317
+#: order/models.py:1401
 msgid "Cannot allocate stock item to a line with a different part"
 msgstr ""
 
-#: order/models.py:1319
+#: order/models.py:1403
 msgid "Cannot allocate stock to a line without a part"
 msgstr ""
 
-#: order/models.py:1322
+#: order/models.py:1406
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr ""
 
-#: order/models.py:1326
+#: order/models.py:1410
 msgid "StockItem is over-allocated"
 msgstr ""
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1416 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr ""
 
-#: order/models.py:1335
+#: order/models.py:1419
 msgid "Sales order does not match shipment"
 msgstr ""
 
-#: order/models.py:1336
+#: order/models.py:1420
 msgid "Shipment does not match sales order"
 msgstr ""
 
-#: order/models.py:1344
+#: order/models.py:1428
 msgid "Line"
 msgstr ""
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr ""
 
-#: order/models.py:1353
+#: order/models.py:1437
 msgid "Sales order shipment reference"
 msgstr ""
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr ""
 
-#: order/models.py:1366
+#: order/models.py:1450
 msgid "Select stock item to allocate"
 msgstr ""
 
-#: order/models.py:1369
+#: order/models.py:1453
 msgid "Enter stock allocation quantity"
 msgstr ""
 
@@ -3662,7 +3642,7 @@ msgstr ""
 msgid "Purchase order must match supplier"
 msgstr ""
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr ""
 
@@ -3674,11 +3654,11 @@ msgstr ""
 msgid "Select destination location for received items"
 msgstr ""
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr ""
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr ""
 
@@ -3714,35 +3694,35 @@ msgstr ""
 msgid "Sale price currency"
 msgstr ""
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr ""
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr ""
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr ""
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr ""
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr ""
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr ""
 
@@ -3832,7 +3812,12 @@ msgstr ""
 msgid "Total cost"
 msgstr ""
 
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
 msgid "Edit Purchase Order"
 msgstr ""
 
@@ -3863,9 +3848,9 @@ msgstr ""
 #: part/templates/part/import_wizard/ajax_match_references.html:42
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3929,7 +3914,7 @@ msgstr ""
 msgid "Order Notes"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
 msgid "Add Order Line"
 msgstr ""
 
@@ -3947,12 +3932,12 @@ msgid "Print packing list"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
 msgid "Complete Sales Order"
 msgstr ""
 
@@ -3961,7 +3946,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2471
 msgid "Customer Reference"
 msgstr ""
 
@@ -3971,7 +3956,7 @@ msgstr ""
 msgid "Completed Shipments"
 msgstr ""
 
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
 msgid "Edit Sales Order"
 msgstr ""
 
@@ -3985,7 +3970,7 @@ msgid "Pending Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
 msgid "Actions"
 msgstr ""
 
@@ -4113,7 +4098,7 @@ msgid "Part Category"
 msgstr ""
 
 #: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
 #: users/models.py:38
 msgid "Part Categories"
 msgstr ""
@@ -4124,7 +4109,7 @@ msgstr ""
 #: part/templates/part/category_sidebar.html:9
 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
 #: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
 #: templates/navbar.html:24 users/models.py:39
 msgid "Parts"
 msgstr ""
@@ -4202,7 +4187,7 @@ msgstr ""
 
 #: part/models.py:842 part/templates/part/part_base.html:266
 #: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
 msgid "IPN"
 msgstr ""
 
@@ -4316,7 +4301,7 @@ msgid "Test with this name already exists for this part"
 msgstr ""
 
 #: part/models.py:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
 msgid "Test Name"
 msgstr ""
 
@@ -4448,7 +4433,7 @@ msgid "BOM quantity for this BOM item"
 msgstr ""
 
 #: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
 #: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
@@ -4482,7 +4467,7 @@ msgid "BOM line checksum"
 msgstr ""
 
 #: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
 #: templates/js/translated/table_filters.js:68
 #: templates/js/translated/table_filters.js:88
 msgid "Inherited"
@@ -4493,7 +4478,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
 #: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
 msgid "Allow Variants"
 msgstr ""
 
@@ -4714,6 +4699,11 @@ msgstr ""
 msgid "New Part"
 msgstr ""
 
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr ""
+
 #: part/templates/part/category.html:172
 msgid "Set category"
 msgstr ""
@@ -4902,46 +4892,46 @@ msgstr ""
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
 msgid "Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
 msgid "Add Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
@@ -5084,8 +5074,8 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
 #: templates/js/translated/model_renderers.js:192
 #: templates/js/translated/part.js:581 templates/js/translated/part.js:658
 msgid "Inactive"
@@ -5101,20 +5091,22 @@ msgstr ""
 msgid "This part is a variant of %(link)s"
 msgstr ""
 
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr ""
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr ""
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
 msgid "Can Build"
 msgstr ""
 
@@ -5133,7 +5125,7 @@ msgid "Latest Serial Number"
 msgstr ""
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr ""
 
@@ -5172,7 +5164,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -5291,7 +5283,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
 msgid "Supplier Cost"
 msgstr ""
 
@@ -5530,7 +5522,7 @@ msgstr ""
 msgid "Barcode associated with Stock Item"
 msgstr ""
 
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
 msgid "Label printing failed"
 msgstr ""
 
@@ -5770,12 +5762,12 @@ msgid "Stock Item Test Report"
 msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr ""
 
@@ -5796,7 +5788,7 @@ msgstr ""
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
 msgid "Date"
 msgstr ""
 
@@ -5815,7 +5807,7 @@ msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2589
 msgid "Serial"
 msgstr ""
 
@@ -5832,7 +5824,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr ""
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr ""
 
@@ -5894,7 +5886,7 @@ msgstr ""
 msgid "Packaging this stock item is stored in"
 msgstr ""
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr ""
 
@@ -5934,8 +5926,8 @@ msgstr ""
 msgid "Destination Sales Order"
 msgstr ""
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1816
 msgid "Expiry Date"
 msgstr ""
 
@@ -6215,11 +6207,11 @@ msgstr ""
 msgid "Installed Stock Items"
 msgstr ""
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
 msgid "Install Stock Item"
 msgstr ""
 
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
 msgid "Add Test Result"
 msgstr ""
 
@@ -6311,110 +6303,114 @@ msgstr ""
 msgid "Delete stock item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:244
-msgid "This stock item has not passed all required tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:252
-msgid "This stock item is allocated to Sales Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr ""
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:284
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:292
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1693
+msgid "No location set"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1832
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr ""
 
@@ -6486,8 +6482,8 @@ msgstr ""
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:198 users/models.py:40
 msgid "Stock Locations"
 msgstr ""
 
@@ -6539,7 +6535,7 @@ msgstr ""
 msgid "Child Items"
 msgstr ""
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr ""
 
@@ -6564,55 +6560,55 @@ msgstr ""
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr ""
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr ""
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr ""
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr ""
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr ""
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr ""
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr ""
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr ""
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr ""
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr ""
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr ""
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr ""
 
@@ -7331,9 +7327,9 @@ msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr ""
@@ -7602,14 +7598,14 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
 #: templates/js/translated/part.js:530
 #: templates/js/translated/table_filters.js:178
 msgid "Available"
@@ -7644,67 +7640,67 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
-#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
 msgid "No Response"
 msgstr ""
 
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
 msgid "No response from the InvenTree server"
 msgstr ""
 
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
 msgid "Error 400: Bad request"
 msgstr ""
 
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
 msgid "API request returned error code 400"
 msgstr ""
 
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
 msgid "Error 401: Not Authenticated"
 msgstr ""
 
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
 msgid "Authentication credentials not supplied"
 msgstr ""
 
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
 msgid "Error 403: Permission Denied"
 msgstr ""
 
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
 msgid "You do not have the required permissions to access this function"
 msgstr ""
 
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
 msgid "Error 404: Resource Not Found"
 msgstr ""
 
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
 msgid "The requested resource could not be located on the server"
 msgstr ""
 
-#: templates/js/translated/api.js:217
+#: templates/js/translated/api.js:262
 msgid "Error 405: Method Not Allowed"
 msgstr ""
 
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
 msgid "HTTP method not allowed at URL"
 msgstr ""
 
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
 msgid "Error 408: Timeout"
 msgstr ""
 
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
 msgid "Connection timeout while requesting data from server"
 msgstr ""
 
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
 msgid "Unhandled Error Code"
 msgstr ""
 
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
 msgid "Error code"
 msgstr ""
 
@@ -7765,7 +7761,7 @@ msgid "Unknown response from server"
 msgstr ""
 
 #: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "Invalid server response"
 msgstr ""
 
@@ -7847,12 +7843,12 @@ msgid "Download BOM Template"
 msgstr ""
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
 msgid "Format"
 msgstr ""
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr ""
 
@@ -7932,84 +7928,84 @@ msgstr ""
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
 msgid "Load BOM for subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
 msgid "No Stock Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
 msgid "Includes variant and substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
 #: templates/js/translated/part.js:690
 msgid "Includes variant stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
 msgid "Includes substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -8131,262 +8127,270 @@ msgstr ""
 msgid "Location not specified"
 msgstr ""
 
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
 msgid "No active build outputs found"
 msgstr ""
 
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
 msgid "Allocated Stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
 msgid "No tracked BOM items for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
 msgid "Completed Tests"
 msgstr ""
 
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
 msgid "No required tests for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
 msgid "Edit stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
 msgid "Delete stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
 msgid "Edit Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
 msgid "Remove Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
 msgid "Substitute parts available"
 msgstr ""
 
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
 msgid "Quantity Per"
 msgstr ""
 
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
 msgid "Insufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
 msgid "Sufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
 msgid "Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
 msgid "Build stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
 msgid "Order stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
 msgid "Allocate stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr ""
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
 msgid "You must select at least one part to allocate"
 msgstr ""
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
 msgid "All Parts Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
 msgid "All selected parts have been fully allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
 msgid "Select source location (leave blank to take from all locations)"
 msgstr ""
 
-#: templates/js/translated/build.js:2117
+#: templates/js/translated/build.js:2100
 msgid "Allocate Stock Items to Build Order"
 msgstr ""
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
 msgid "No matching stock locations"
 msgstr ""
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
 msgid "No matching stock items"
 msgstr ""
 
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
 msgid "Automatic Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
 msgstr ""
 
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
 msgid "If a location is specifed, stock will only be allocated from that location"
 msgstr ""
 
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
 msgstr ""
 
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
 msgstr ""
 
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
 msgid "Allocate Stock Items"
 msgstr ""
 
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
 msgid "Select"
 msgstr ""
 
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
 msgid "Build order is overdue"
 msgstr ""
 
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
 msgid "Progress"
 msgstr ""
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
 msgid "No information"
 msgstr ""
 
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
 msgid "No parts allocated for"
 msgstr ""
 
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
 msgid "Add Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
 msgid "Edit Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:342
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr ""
+
+#: templates/js/translated/company.js:595
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
 #: templates/js/translated/part.js:650
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
 #: templates/js/translated/part.js:654
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
 msgid "No supplier parts found"
 msgstr ""
 
@@ -8424,61 +8428,61 @@ msgstr ""
 msgid "Create filter"
 msgstr ""
 
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
 msgid "Action Prohibited"
 msgstr ""
 
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
 msgid "Create operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
 msgid "Update operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
 msgid "Delete operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
 msgid "View operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
 msgid "Keep this form open"
 msgstr ""
 
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
 msgid "Enter a valid number"
 msgstr ""
 
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
 #: templates/modals.html:43
 msgid "Form errors exist"
 msgstr ""
 
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
 msgid "No results found"
 msgstr ""
 
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
 msgid "Searching"
 msgstr ""
 
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
 msgid "Clear input"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "File Column"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "Field Name"
 msgstr ""
 
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
 msgid "Select Columns"
 msgstr ""
 
@@ -8552,62 +8556,62 @@ msgstr ""
 msgid "Select Label Template"
 msgstr ""
 
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
 msgid "Cancel"
 msgstr ""
 
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
 #: templates/modals.html:28 templates/modals.html:51
 msgid "Submit"
 msgstr ""
 
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
 msgid "Form Title"
 msgstr ""
 
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
 msgid "Waiting for server..."
 msgstr ""
 
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
 msgid "Show Error Information"
 msgstr ""
 
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
 msgid "Accept"
 msgstr ""
 
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
 msgid "Loading Data"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Invalid response from server"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Form data missing from server response"
 msgstr ""
 
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
 msgid "Error posting form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "JSON response missing form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
 msgid "Error 400: Bad Request"
 msgstr ""
 
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
 msgid "Server returned error code 400"
 msgstr ""
 
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
 msgid "Error requesting form data"
 msgstr ""
 
@@ -8665,377 +8669,381 @@ msgstr ""
 msgid "Notifications will load here"
 msgstr ""
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
 msgstr ""
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
 msgstr ""
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr ""
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr ""
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr ""
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr ""
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr ""
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr ""
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr ""
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr ""
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr ""
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr ""
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr ""
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
 msgid "Stock Status"
 msgstr ""
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr ""
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr ""
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr ""
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
 msgid "Order is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
 msgid "Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
 msgid "Duplicate Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
 msgid "Edit Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
 msgid "Delete Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1856
 msgid "No line items found"
 msgstr ""
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
 msgid "Total"
 msgstr ""
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
 msgid "Total Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
 msgid "Duplicate line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
 msgid "Edit line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
 msgid "Delete line item"
 msgstr ""
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
 msgid "Duplicate line"
 msgstr ""
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
 msgid "Edit line"
 msgstr ""
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
 msgid "Delete line"
 msgstr ""
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
 msgid "Duplicate Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
 msgid "Edit Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
 msgid "Delete Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2279
 msgid "No matching line"
 msgstr ""
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2392
 msgid "No sales orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2462
 msgid "Invalid Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2549
 msgid "Edit shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2552
 msgid "Complete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2557
 msgid "Delete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2577
 msgid "Edit Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2594
 msgid "Delete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2628
 msgid "No matching shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2638
 msgid "Shipment Reference"
 msgstr ""
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2662
 msgid "Not shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2668
 msgid "Tracking"
 msgstr ""
 
-#: templates/js/translated/order.js:2603
+#: templates/js/translated/order.js:2672
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:2841
 msgid "Add Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2892
 msgid "Confirm stock allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2893
 msgid "Allocate Stock Items to Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:3101
 msgid "No sales order allocations found"
 msgstr ""
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:3182
 msgid "Edit Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:3199
 msgid "Confirm Delete Operation"
 msgstr ""
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:3200
 msgid "Delete Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
 msgid "Shipped to customer"
 msgstr ""
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
 msgid "Stock location not specified"
 msgstr ""
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3623
 msgid "Allocate serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3629
 msgid "Purchase stock"
 msgstr ""
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
 msgid "Calculate price"
 msgstr ""
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3648
 msgid "Cannot be deleted as items have been shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3651
 msgid "Cannot be deleted as items have been allocated"
 msgstr ""
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3733
 msgid "Allocate Serial Numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3842
 msgid "Update Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3856
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:4092
 msgid "No matching lines"
 msgstr ""
 
@@ -9217,7 +9225,7 @@ msgid "No category"
 msgstr ""
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2238
 msgid "Display as list"
 msgstr ""
 
@@ -9225,7 +9233,7 @@ msgstr ""
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
 msgid "Display as tree"
 msgstr ""
 
@@ -9233,7 +9241,7 @@ msgstr ""
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
 msgid "Path"
 msgstr ""
 
@@ -9241,12 +9249,12 @@ msgstr ""
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
 msgid "Delete test result"
 msgstr ""
 
@@ -9367,11 +9375,11 @@ msgstr ""
 msgid "Sales Order(s) must be selected before printing report"
 msgstr ""
 
-#: templates/js/translated/search.js:307
+#: templates/js/translated/search.js:352
 msgid "Minimize results"
 msgstr ""
 
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:355
 msgid "Remove results"
 msgstr ""
 
@@ -9531,204 +9539,204 @@ msgstr ""
 msgid "Confirm stock adjustment"
 msgstr ""
 
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
 msgid "PASS"
 msgstr ""
 
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
 msgid "FAIL"
 msgstr ""
 
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
 msgid "NO RESULT"
 msgstr ""
 
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
 msgid "Pass test"
 msgstr ""
 
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
 msgid "Add test result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
 msgid "No test results found"
 msgstr ""
 
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
 msgid "Test Date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
 msgid "Edit Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
 msgid "Delete Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
 msgid "In production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
 msgid "Installed in Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
 msgid "Assigned to Sales Order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
 msgid "No stock location set"
 msgstr ""
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1712
 msgid "Stock item is in production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1717
 msgid "Stock item assigned to sales order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1720
 msgid "Stock item assigned to customer"
 msgstr ""
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr ""
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr ""
-
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
 msgid "Serialized stock item has been allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
 msgid "Stock item has been fully allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
 msgid "Stock item has been partially allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1730
 msgid "Stock item has been installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1734
+msgid "Stock item has expired"
+msgstr ""
+
+#: templates/js/translated/stock.js:1736
+msgid "Stock item will expire soon"
+msgstr ""
+
+#: templates/js/translated/stock.js:1743
 msgid "Stock item has been rejected"
 msgstr ""
 
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1745
 msgid "Stock item is lost"
 msgstr ""
 
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1747
 msgid "Stock item is destroyed"
 msgstr ""
 
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1751
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr ""
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1802
 msgid "Stocktake"
 msgstr ""
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1884
 msgid "Supplier part not specified"
 msgstr ""
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1922
 msgid "No stock items matching query"
 msgstr ""
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2095
 msgid "Set Stock Status"
 msgstr ""
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2109
 msgid "Select Status Code"
 msgstr ""
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2110
 msgid "Status code must be selected"
 msgstr ""
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2365
 msgid "Details"
 msgstr ""
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2381
 msgid "Part information unavailable"
 msgstr ""
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2403
 msgid "Location no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2422
 msgid "Purchase order no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
 msgid "Customer no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2459
 msgid "Stock item no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2482
 msgid "Added"
 msgstr ""
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2490
 msgid "Removed"
 msgstr ""
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2566
 msgid "No installed items"
 msgstr ""
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
 msgid "Uninstall Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2666
 msgid "Select stock item to uninstall"
 msgstr ""
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2687
 msgid "Install another stock item into this item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2688
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr ""
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2690
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2691
 msgid "The Stock Item is currently available in stock"
 msgstr ""
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2692
 msgid "The Stock Item is not already installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2693
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr ""
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2706
 msgid "Select part to install"
 msgstr ""
 
@@ -9960,69 +9968,81 @@ msgstr ""
 msgid "Purchasable"
 msgstr ""
 
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr ""
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr ""
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
 msgid "Export Table Data"
 msgstr ""
 
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
 msgid "Select File Format"
 msgstr ""
 
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
 msgid "Loading data"
 msgstr ""
 
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
 msgid "rows per page"
 msgstr ""
 
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
 msgid "Showing all rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "Showing"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "to"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "of"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
 #: templates/search.html:8 templates/search_form.html:6
 #: templates/search_form.html:7
 msgid "Search"
 msgstr ""
 
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
 msgid "No matching results"
 msgstr ""
 
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
 msgid "Hide/Show pagination"
 msgstr ""
 
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
 msgid "Refresh"
 msgstr ""
 
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
 msgid "Toggle"
 msgstr ""
 
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
 msgid "Columns"
 msgstr ""
 
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
 msgid "All"
 msgstr ""
 
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index 4f129aea77..50aaad0606 100644
--- a/InvenTree/locale/en/LC_MESSAGES/django.po
+++ b/InvenTree/locale/en/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
+"POT-Creation-Date: 2022-05-25 01:01+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -135,10 +135,12 @@ msgid "Select file to attach"
 msgstr ""
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:132 order/models.py:1215
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
 #: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:829 templates/js/translated/order.js:2469
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr ""
 
@@ -160,7 +162,7 @@ msgstr ""
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2522
 msgid "User"
 msgstr ""
 
@@ -208,7 +210,7 @@ msgstr ""
 #: templates/InvenTree/settings/settings.html:327
 #: templates/js/translated/company.js:641 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2292
 msgid "Name"
 msgstr ""
 
@@ -227,12 +229,12 @@ msgstr ""
 #: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
 #: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
 #: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/company.js:840 templates/js/translated/order.js:1577
+#: templates/js/translated/order.js:1785 templates/js/translated/order.js:2269
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
 #: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/stock.js:2304 templates/js/translated/stock.js:2359
 msgid "Description"
 msgstr ""
 
@@ -437,7 +439,7 @@ msgid "Returned"
 msgstr ""
 
 #: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: templates/js/translated/order.js:3057 templates/js/translated/order.js:3374
 msgid "Shipped"
 msgstr ""
 
@@ -517,7 +519,7 @@ msgstr ""
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2030
 msgid "Merged stock items"
 msgstr ""
 
@@ -644,9 +646,9 @@ msgstr ""
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
 #: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1816
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:3241
+#: templates/js/translated/order.js:3726
 msgid "Reference"
 msgstr ""
 
@@ -684,15 +686,15 @@ msgstr ""
 #: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
 #: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
 #: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/company.js:749 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2612
+#: templates/js/translated/order.js:3010 templates/js/translated/order.js:3225
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2385
+#: templates/js/translated/stock.js:2580 templates/js/translated/stock.js:2714
 msgid "Part"
 msgstr ""
 
@@ -709,7 +711,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr ""
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2600
 msgid "Source Location"
 msgstr ""
 
@@ -750,7 +752,7 @@ msgid "Build status code"
 msgstr ""
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr ""
 
@@ -759,7 +761,7 @@ msgid "Batch code for this build output"
 msgstr ""
 
 #: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2282
 msgid "Creation Date"
 msgstr ""
 
@@ -793,7 +795,7 @@ msgstr ""
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1611
 msgid "Responsible"
 msgstr ""
 
@@ -805,7 +807,7 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr ""
 
@@ -822,10 +824,10 @@ msgstr ""
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
 #: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/company.js:845 templates/js/translated/order.js:1937
+#: templates/js/translated/order.js:2088 templates/js/translated/order.js:2480
+#: templates/js/translated/order.js:3399 templates/js/translated/order.js:3797
+#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1926
 msgid "Notes"
 msgstr ""
 
@@ -858,7 +860,7 @@ msgstr ""
 msgid "Stock item is over-allocated"
 msgstr ""
 
-#: build/models.py:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1355
 msgid "Allocation quantity must be greater than zero"
 msgstr ""
 
@@ -870,7 +872,7 @@ msgstr ""
 msgid "Selected stock item not found in BOM"
 msgstr ""
 
-#: build/models.py:1375 stock/templates/stock/item_base.html:335
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
 #: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
 #: templates/navbar.html:38
 msgid "Build"
@@ -880,18 +882,18 @@ msgstr ""
 msgid "Build to allocate parts"
 msgstr ""
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
 #: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2613
+#: templates/js/translated/order.js:2917 templates/js/translated/order.js:2922
+#: templates/js/translated/order.js:3017 templates/js/translated/order.js:3107
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2458
 msgid "Stock Item"
 msgstr ""
 
@@ -903,7 +905,7 @@ msgstr ""
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:877 order/models.py:1395 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
 #: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
@@ -914,25 +916,24 @@ 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
 #: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
 #: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
 #: templates/js/translated/build.js:2103
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1822 templates/js/translated/order.js:2023
+#: templates/js/translated/order.js:2614 templates/js/translated/order.js:2936
+#: templates/js/translated/order.js:3024 templates/js/translated/order.js:3113
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3732
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2507 templates/js/translated/stock.js:2592
 msgid "Quantity"
 msgstr ""
 
@@ -988,8 +989,8 @@ msgstr ""
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr ""
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr ""
@@ -1016,15 +1017,15 @@ msgstr ""
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:2929 templates/js/translated/order.js:3032
+#: templates/js/translated/order.js:3040 templates/js/translated/order.js:3121
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2399
 msgid "Location"
 msgstr ""
 
@@ -1034,11 +1035,11 @@ msgstr ""
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
 #: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
 #: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1581
+#: templates/js/translated/order.js:2274 templates/js/translated/stock.js:1772
+#: templates/js/translated/stock.js:2476 templates/js/translated/stock.js:2608
 msgid "Status"
 msgstr ""
 
@@ -1119,7 +1120,7 @@ msgstr ""
 msgid "Item must be in stock"
 msgstr ""
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr ""
@@ -1136,7 +1137,7 @@ msgstr ""
 msgid "This stock item has already been allocated to this build output"
 msgstr ""
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr ""
 
@@ -1238,9 +1239,9 @@ msgstr ""
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1598
+#: templates/js/translated/order.js:1884 templates/js/translated/order.js:2290
+#: templates/js/translated/order.js:3310 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr ""
 
@@ -1268,13 +1269,13 @@ msgstr ""
 
 #: build/templates/build/build_base.html:176
 #: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: order/models.py:1165 order/models.py:1299
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2229
 msgid "Sales Order"
 msgstr ""
 
@@ -1310,7 +1311,7 @@ msgid "Stock can be taken from any available location."
 msgstr ""
 
 #: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1926
 msgid "Destination"
 msgstr ""
 
@@ -1323,11 +1324,11 @@ msgid "Allocated Parts"
 msgstr ""
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
+#: stock/templates/stock/item_base.html:170
 #: templates/js/translated/build.js:1184
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1786
+#: templates/js/translated/stock.js:2615
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1387,7 +1388,7 @@ msgstr ""
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
 #: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr ""
 
@@ -2652,7 +2653,7 @@ msgstr ""
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
+#: stock/templates/stock/item_base.html:212
 #: templates/js/translated/company.js:333
 #: templates/js/translated/company.js:517
 #: templates/js/translated/company.js:800 templates/js/translated/part.js:235
@@ -2667,7 +2668,7 @@ msgstr ""
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
 #: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:818 templates/js/translated/order.js:1804
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr ""
@@ -2687,7 +2688,7 @@ msgstr ""
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr ""
 
@@ -2724,9 +2725,9 @@ msgstr ""
 #: company/models.py:550 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:87 order/models.py:252
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
+#: stock/templates/stock/item_base.html:229
 #: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: templates/js/translated/company.js:774 templates/js/translated/order.js:1564
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2737,7 +2738,7 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1791
 #: templates/js/translated/part.js:227 templates/js/translated/part.js:942
 msgid "SKU"
 msgstr ""
@@ -2774,8 +2775,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr ""
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1922
 msgid "Packaging"
 msgstr ""
 
@@ -2810,7 +2811,7 @@ msgid "Company"
 msgstr ""
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr ""
 
@@ -2849,9 +2850,9 @@ msgstr ""
 #: company/templates/company/company_base.html:86 order/models.py:600
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:2251
+#: templates/js/translated/stock.js:2440
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr ""
@@ -3100,9 +3101,9 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:790 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1879
 msgid "Supplier Part"
 msgstr ""
 
@@ -3218,7 +3219,7 @@ msgstr ""
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
 #: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/js/translated/stock.js:2316 users/models.py:41
 msgid "Stock Items"
 msgstr ""
 
@@ -3333,7 +3334,7 @@ msgstr ""
 msgid "Order description"
 msgstr ""
 
-#: order/models.py:132
+#: order/models.py:132 order/models.py:1216
 msgid "Link to external page"
 msgstr ""
 
@@ -3362,7 +3363,7 @@ msgid "Company from which the items are being ordered"
 msgstr ""
 
 #: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:1573
 msgid "Supplier Reference"
 msgstr ""
 
@@ -3419,7 +3420,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
 msgstr ""
 
 #: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: templates/js/translated/order.js:2298 templates/js/translated/order.js:2449
 msgid "Shipment Date"
 msgstr ""
 
@@ -3480,8 +3481,8 @@ msgid "deleted"
 msgstr ""
 
 #: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1164 order/models.py:1299
+#: templates/js/translated/order.js:2905
 msgid "Order"
 msgstr ""
 
@@ -3489,10 +3490,10 @@ msgstr ""
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1542
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:2421
 msgid "Purchase Order"
 msgstr ""
 
@@ -3501,7 +3502,7 @@ msgid "Supplier part"
 msgstr ""
 
 #: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:1906
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
@@ -3512,8 +3513,8 @@ msgid "Number of items received"
 msgstr ""
 
 #: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1910
 msgid "Purchase Price"
 msgstr ""
 
@@ -3566,68 +3567,76 @@ msgstr ""
 msgid "Shipment tracking information"
 msgstr ""
 
-#: order/models.py:1213
+#: order/models.py:1209
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1210
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1227
 msgid "Shipment has already been sent"
 msgstr ""
 
-#: order/models.py:1216
+#: order/models.py:1230
 msgid "Shipment has no allocated stock items"
 msgstr ""
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1337 order/models.py:1339
 msgid "Stock item has not been assigned"
 msgstr ""
 
-#: order/models.py:1317
+#: order/models.py:1343
 msgid "Cannot allocate stock item to a line with a different part"
 msgstr ""
 
-#: order/models.py:1319
+#: order/models.py:1345
 msgid "Cannot allocate stock to a line without a part"
 msgstr ""
 
-#: order/models.py:1322
+#: order/models.py:1348
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr ""
 
-#: order/models.py:1326
+#: order/models.py:1352
 msgid "StockItem is over-allocated"
 msgstr ""
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1358 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr ""
 
-#: order/models.py:1335
+#: order/models.py:1361
 msgid "Sales order does not match shipment"
 msgstr ""
 
-#: order/models.py:1336
+#: order/models.py:1362
 msgid "Shipment does not match sales order"
 msgstr ""
 
-#: order/models.py:1344
+#: order/models.py:1370
 msgid "Line"
 msgstr ""
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1378 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr ""
 
-#: order/models.py:1353
+#: order/models.py:1379
 msgid "Sales order shipment reference"
 msgstr ""
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1391 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr ""
 
-#: order/models.py:1366
+#: order/models.py:1392
 msgid "Select stock item to allocate"
 msgstr ""
 
-#: order/models.py:1369
+#: order/models.py:1395
 msgid "Enter stock allocation quantity"
 msgstr ""
 
@@ -3663,7 +3672,7 @@ msgstr ""
 msgid "Purchase order must match supplier"
 msgstr ""
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr ""
 
@@ -3675,11 +3684,11 @@ msgstr ""
 msgid "Select destination location for received items"
 msgstr ""
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr ""
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr ""
 
@@ -3715,35 +3724,35 @@ msgstr ""
 msgid "Sale price currency"
 msgstr ""
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr ""
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr ""
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr ""
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr ""
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr ""
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr ""
 
@@ -3865,8 +3874,8 @@ msgstr ""
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
 #: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2524 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3948,7 +3957,7 @@ msgid "Print packing list"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
 msgstr ""
 
@@ -3962,7 +3971,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2264
 msgid "Customer Reference"
 msgstr ""
 
@@ -5102,16 +5111,18 @@ msgstr ""
 msgid "This part is a variant of %(link)s"
 msgstr ""
 
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3336
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr ""
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr ""
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr ""
 
@@ -5134,7 +5145,7 @@ msgid "Latest Serial Number"
 msgstr ""
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr ""
 
@@ -5772,12 +5783,12 @@ msgid "Stock Item Test Report"
 msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
 #: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3022
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr ""
 
@@ -5798,7 +5809,7 @@ msgstr ""
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1590 templates/js/translated/stock.js:2349
 msgid "Date"
 msgstr ""
 
@@ -5817,7 +5828,7 @@ msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2598
 msgid "Serial"
 msgstr ""
 
@@ -5834,7 +5845,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr ""
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr ""
 
@@ -5896,7 +5907,7 @@ msgstr ""
 msgid "Packaging this stock item is stored in"
 msgstr ""
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr ""
 
@@ -5936,8 +5947,8 @@ msgstr ""
 msgid "Destination Sales Order"
 msgstr ""
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1826
 msgid "Expiry Date"
 msgstr ""
 
@@ -6217,7 +6228,7 @@ msgstr ""
 msgid "Installed Stock Items"
 msgstr ""
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2742
 msgid "Install Stock Item"
 msgstr ""
 
@@ -6313,110 +6324,114 @@ msgstr ""
 msgid "Delete stock item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:244
-msgid "This stock item has not passed all required tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:252
-msgid "This stock item is allocated to Sales Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr ""
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:284
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:292
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1710
+msgid "No location set"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1842
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr ""
 
@@ -6541,7 +6556,7 @@ msgstr ""
 msgid "Child Items"
 msgstr ""
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr ""
 
@@ -6566,55 +6581,55 @@ msgstr ""
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr ""
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr ""
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr ""
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr ""
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr ""
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr ""
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr ""
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr ""
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr ""
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr ""
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr ""
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr ""
 
@@ -7335,7 +7350,7 @@ msgstr ""
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
 #: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
 #: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr ""
@@ -7851,12 +7866,12 @@ msgid "Download BOM Template"
 msgstr ""
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:53
 msgid "Format"
 msgstr ""
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr ""
 
@@ -8156,12 +8171,12 @@ msgid "No required tests for this build"
 msgstr ""
 
 #: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/order.js:3059
 msgid "Edit stock allocation"
 msgstr ""
 
 #: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/order.js:3060
 msgid "Delete stock allocation"
 msgstr ""
 
@@ -8190,11 +8205,11 @@ msgid "Sufficient stock available"
 msgstr ""
 
 #: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3346
 msgid "Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3426
 msgid "Build stock"
 msgstr ""
 
@@ -8202,21 +8217,21 @@ msgstr ""
 msgid "Order stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3419
 msgid "Allocate stock"
 msgstr ""
 
 #: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2586
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr ""
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2587
 msgid "You must select at least one part to allocate"
 msgstr ""
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2535
 msgid "Specify stock allocation quantity"
 msgstr ""
 
@@ -8228,7 +8243,7 @@ msgstr ""
 msgid "All selected parts have been fully allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2601
 msgid "Select source location (leave blank to take from all locations)"
 msgstr ""
 
@@ -8236,11 +8251,11 @@ msgstr ""
 msgid "Allocate Stock Items to Build Order"
 msgstr ""
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2698
 msgid "No matching stock locations"
 msgstr ""
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2775
 msgid "No matching stock items"
 msgstr ""
 
@@ -8274,7 +8289,7 @@ msgstr ""
 
 #: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
 #: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/stock.js:2286
 msgid "Select"
 msgstr ""
 
@@ -8286,7 +8301,7 @@ msgstr ""
 msgid "Progress"
 msgstr ""
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2528
 msgid "No user information"
 msgstr ""
 
@@ -8314,7 +8329,7 @@ msgstr ""
 msgid "Delete Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr ""
 
@@ -8669,377 +8684,381 @@ msgstr ""
 msgid "Notifications will load here"
 msgstr ""
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
 msgstr ""
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
 msgstr ""
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr ""
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr ""
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr ""
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr ""
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr ""
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr ""
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr ""
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr ""
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr ""
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr ""
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr ""
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2089
 msgid "Stock Status"
 msgstr ""
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr ""
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr ""
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr ""
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1531 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1556 templates/js/translated/order.js:2241
 msgid "Order is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1606 templates/js/translated/order.js:2306
+#: templates/js/translated/order.js:2436
 msgid "Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1680 templates/js/translated/order.js:3478
 msgid "Duplicate Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1697 templates/js/translated/order.js:3500
 msgid "Edit Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1710 templates/js/translated/order.js:3511
 msgid "Delete Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1753
 msgid "No line items found"
 msgstr ""
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1780 templates/js/translated/order.js:3235
 msgid "Total"
 msgstr ""
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2036
+#: templates/js/translated/order.js:3260 templates/js/translated/order.js:3745
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1849 templates/js/translated/order.js:2052
+#: templates/js/translated/order.js:3276 templates/js/translated/order.js:3761
 msgid "Total Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1890 templates/js/translated/order.js:3318
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:1949 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3432
 msgid "Duplicate line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:1954 templates/js/translated/order.js:3433
 msgid "Edit line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:1955 templates/js/translated/order.js:3437
 msgid "Delete line item"
 msgstr ""
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2101 templates/js/translated/order.js:3810
 msgid "Duplicate line"
 msgstr ""
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2102 templates/js/translated/order.js:3811
 msgid "Edit line"
 msgstr ""
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2103 templates/js/translated/order.js:3812
 msgid "Delete line"
 msgstr ""
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2133 templates/js/translated/order.js:3842
 msgid "Duplicate Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2154 templates/js/translated/order.js:3863
 msgid "Edit Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2165 templates/js/translated/order.js:3874
 msgid "Delete Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2176
 msgid "No matching line"
 msgstr ""
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2217
 msgid "No sales orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2255
 msgid "Invalid Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2342
 msgid "Edit shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2345
 msgid "Complete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2350
 msgid "Delete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2370
 msgid "Edit Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2387
 msgid "Delete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2421
 msgid "No matching shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2431
 msgid "Shipment Reference"
 msgstr ""
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2455
 msgid "Not shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2461
 msgid "Tracking"
 msgstr ""
 
-#: templates/js/translated/order.js:2603
+#: templates/js/translated/order.js:2465
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:2634
 msgid "Add Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2685
 msgid "Confirm stock allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2686
 msgid "Allocate Stock Items to Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:2894
 msgid "No sales order allocations found"
 msgstr ""
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:2975
 msgid "Edit Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:2992
 msgid "Confirm Delete Operation"
 msgstr ""
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:2993
 msgid "Delete Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
+#: templates/js/translated/order.js:3036 templates/js/translated/order.js:3125
 #: templates/js/translated/stock.js:1545
 msgid "Shipped to customer"
 msgstr ""
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3044 templates/js/translated/order.js:3134
 msgid "Stock location not specified"
 msgstr ""
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3416
 msgid "Allocate serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3422
 msgid "Purchase stock"
 msgstr ""
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3429 templates/js/translated/order.js:3627
 msgid "Calculate price"
 msgstr ""
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3441
 msgid "Cannot be deleted as items have been shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3444
 msgid "Cannot be deleted as items have been allocated"
 msgstr ""
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3526
 msgid "Allocate Serial Numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3635
 msgid "Update Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3649
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:3885
 msgid "No matching lines"
 msgstr ""
 
@@ -9221,7 +9240,7 @@ msgid "No category"
 msgstr ""
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2247
 msgid "Display as list"
 msgstr ""
 
@@ -9229,7 +9248,7 @@ msgstr ""
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2266
 msgid "Display as tree"
 msgstr ""
 
@@ -9237,7 +9256,7 @@ msgstr ""
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2310
 msgid "Path"
 msgstr ""
 
@@ -9587,26 +9606,18 @@ msgstr ""
 msgid "No stock location set"
 msgstr ""
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1722
 msgid "Stock item is in production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1727
 msgid "Stock item assigned to sales order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1730
 msgid "Stock item assigned to customer"
 msgstr ""
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr ""
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr ""
-
 #: templates/js/translated/stock.js:1733
 msgid "Serialized stock item has been allocated"
 msgstr ""
@@ -9619,120 +9630,128 @@ msgstr ""
 msgid "Stock item has been partially allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1740
 msgid "Stock item has been installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1749
-msgid "Stock item has been rejected"
+#: templates/js/translated/stock.js:1744
+msgid "Stock item has expired"
 msgstr ""
 
-#: templates/js/translated/stock.js:1751
-msgid "Stock item is lost"
+#: templates/js/translated/stock.js:1746
+msgid "Stock item will expire soon"
 msgstr ""
 
 #: templates/js/translated/stock.js:1753
-msgid "Stock item is destroyed"
+msgid "Stock item has been rejected"
+msgstr ""
+
+#: templates/js/translated/stock.js:1755
+msgid "Stock item is lost"
 msgstr ""
 
 #: templates/js/translated/stock.js:1757
+msgid "Stock item is destroyed"
+msgstr ""
+
+#: templates/js/translated/stock.js:1761
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr ""
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1812
 msgid "Stocktake"
 msgstr ""
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1894
 msgid "Supplier part not specified"
 msgstr ""
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1932
 msgid "No stock items matching query"
 msgstr ""
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2104
 msgid "Set Stock Status"
 msgstr ""
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2118
 msgid "Select Status Code"
 msgstr ""
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2119
 msgid "Status code must be selected"
 msgstr ""
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2374
 msgid "Details"
 msgstr ""
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2390
 msgid "Part information unavailable"
 msgstr ""
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2412
 msgid "Location no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2431
 msgid "Purchase order no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2450
 msgid "Customer no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2468
 msgid "Stock item no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2491
 msgid "Added"
 msgstr ""
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2499
 msgid "Removed"
 msgstr ""
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2575
 msgid "No installed items"
 msgstr ""
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2662
 msgid "Uninstall Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2675
 msgid "Select stock item to uninstall"
 msgstr ""
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2696
 msgid "Install another stock item into this item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2697
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr ""
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2699
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2700
 msgid "The Stock Item is currently available in stock"
 msgstr ""
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2701
 msgid "The Stock Item is not already installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2702
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr ""
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2715
 msgid "Select part to install"
 msgstr ""
 
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index 86025e5134..39a93dd08e 100644
--- a/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
-"PO-Revision-Date: 2022-05-24 01:42\n"
+"POT-Creation-Date: 2022-05-28 23:41+0000\n"
+"PO-Revision-Date: 2022-05-29 01:47\n"
 "Last-Translator: \n"
 "Language-Team: Spanish\n"
 "Language: es_ES\n"
@@ -21,7 +21,7 @@ msgstr ""
 msgid "API endpoint not found"
 msgstr ""
 
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
 msgid "Error details can be found in the admin panel"
 msgstr ""
 
@@ -30,7 +30,7 @@ msgid "Enter date"
 msgstr ""
 
 #: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
 msgid "Confirm"
 msgstr ""
 
@@ -79,7 +79,7 @@ msgstr ""
 msgid "Duplicate serial: {sn}"
 msgstr ""
 
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
 msgid "Invalid quantity provided"
 msgstr ""
 
@@ -134,10 +134,12 @@ msgid "Select file to attach"
 msgstr ""
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:139 order/models.py:1273
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr ""
 
@@ -159,7 +161,7 @@ msgstr ""
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2513
 msgid "User"
 msgstr ""
 
@@ -205,9 +207,10 @@ msgstr ""
 #: templates/InvenTree/settings/plugin.html:132
 #: templates/InvenTree/settings/plugin_settings.html:23
 #: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2283
 msgid "Name"
 msgstr ""
 
@@ -216,22 +219,22 @@ msgstr ""
 #: company/models.py:575 company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
 #: part/templates/part/part_base.html:167
 #: part/templates/part/set_category.html:14 report/models.py:182
 #: report/models.py:547 report/models.py:586
 #: report/templates/report/inventree_build_order_base.html:118
 #: stock/templates/stock/location.html:103
 #: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
 msgid "Description"
 msgstr ""
 
@@ -406,7 +409,7 @@ msgid "InvenTree system health checks failed"
 msgstr ""
 
 #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
 msgid "Pending"
 msgstr ""
 
@@ -414,141 +417,145 @@ msgstr ""
 msgid "Placed"
 msgstr ""
 
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
 #: order/templates/order/order_base.html:134
 #: order/templates/order/sales_order_base.html:133
 msgid "Complete"
 msgstr ""
 
 #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
 msgid "Cancelled"
 msgstr ""
 
 #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
 msgid "Lost"
 msgstr ""
 
 #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
 msgid "Returned"
 msgstr ""
 
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
 msgid "Shipped"
 msgstr ""
 
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
 msgid "OK"
 msgstr ""
 
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
 msgid "Attention needed"
 msgstr ""
 
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
 msgid "Damaged"
 msgstr ""
 
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
 msgid "Destroyed"
 msgstr ""
 
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
 msgid "Rejected"
 msgstr ""
 
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
 msgid "Legacy stock tracking entry"
 msgstr ""
 
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
 msgid "Stock item created"
 msgstr ""
 
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
 msgid "Edited stock item"
 msgstr ""
 
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
 msgid "Assigned serial number"
 msgstr ""
 
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
 msgid "Stock counted"
 msgstr ""
 
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
 msgid "Stock manually added"
 msgstr ""
 
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
 msgid "Stock manually removed"
 msgstr ""
 
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
 msgid "Location changed"
 msgstr ""
 
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
 msgid "Installed into assembly"
 msgstr ""
 
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
 msgid "Removed from assembly"
 msgstr ""
 
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
 msgid "Installed component item"
 msgstr ""
 
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
 msgid "Removed component item"
 msgstr ""
 
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
 msgid "Split from parent item"
 msgstr ""
 
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
 msgid "Merged stock items"
 msgstr ""
 
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
 msgid "Converted to variant"
 msgstr ""
 
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
 msgid "Sent to customer"
 msgstr ""
 
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
 msgid "Returned from customer"
 msgstr ""
 
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
 msgid "Build order output created"
 msgstr ""
 
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
 msgid "Build order output completed"
 msgstr ""
 
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
 msgid "Consumed by build order"
 msgstr ""
 
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
 msgid "Received against purchase order"
 msgstr ""
 
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
 msgid "Production"
 msgstr ""
 
@@ -637,15 +644,15 @@ msgstr ""
 msgid "Build Order Reference"
 msgstr ""
 
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
 #: part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
 msgid "Reference"
 msgstr ""
 
@@ -664,7 +671,7 @@ msgstr ""
 
 #: build/models.py:225 build/templates/build/build_base.html:77
 #: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
 #: part/models.py:2303 part/models.py:2319 part/models.py:2338
 #: part/models.py:2355 part/models.py:2457 part/models.py:2579
 #: part/models.py:2669 part/models.py:2760 part/models.py:3050
@@ -679,19 +686,21 @@ msgstr ""
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
 #: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
 msgid "Part"
 msgstr ""
 
@@ -708,7 +717,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr ""
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
 msgid "Source Location"
 msgstr ""
 
@@ -749,7 +758,7 @@ msgid "Build status code"
 msgstr ""
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr ""
 
@@ -757,12 +766,12 @@ msgstr ""
 msgid "Batch code for this build output"
 msgstr ""
 
-#: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
 msgid "Creation Date"
 msgstr ""
 
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
 msgid "Target completion date"
 msgstr ""
 
@@ -770,8 +779,8 @@ msgstr ""
 msgid "Target date for build completion. Build will be overdue after this date."
 msgstr ""
 
-#: build/models.py:300 order/models.py:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
 msgid "Completion Date"
 msgstr ""
 
@@ -779,7 +788,7 @@ msgstr ""
 msgid "completed by"
 msgstr ""
 
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
 msgid "Issued by"
 msgstr ""
 
@@ -788,11 +797,11 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
 msgid "Responsible"
 msgstr ""
 
@@ -804,14 +813,14 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr ""
 
 #: build/models.py:334 build/serializers.py:390
 #: build/templates/build/sidebar.html:21 company/models.py:134
 #: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
 #: order/templates/order/po_sidebar.html:11
 #: order/templates/order/so_sidebar.html:17 part/models.py:983
 #: part/templates/part/part_sidebar.html:59
@@ -820,11 +829,11 @@ msgstr ""
 #: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
 msgid "Notes"
 msgstr ""
 
@@ -857,7 +866,7 @@ msgstr ""
 msgid "Stock item is over-allocated"
 msgstr ""
 
-#: build/models.py:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1413
 msgid "Allocation quantity must be greater than zero"
 msgstr ""
 
@@ -869,8 +878,8 @@ msgstr ""
 msgid "Selected stock item not found in BOM"
 msgstr ""
 
-#: build/models.py:1375 stock/templates/stock/item_base.html:335
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
 #: templates/navbar.html:38
 msgid "Build"
 msgstr ""
@@ -879,18 +888,18 @@ msgstr ""
 msgid "Build to allocate parts"
 msgstr ""
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2449
 msgid "Stock Item"
 msgstr ""
 
@@ -902,10 +911,10 @@ msgstr ""
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_build_order_base.html:114
@@ -913,25 +922,24 @@ 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
 msgid "Quantity"
 msgstr ""
 
@@ -948,7 +956,7 @@ msgid "Destination stock item"
 msgstr ""
 
 #: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
 msgid "Build Output"
 msgstr ""
 
@@ -972,7 +980,7 @@ msgstr ""
 msgid "Enter quantity for build output"
 msgstr ""
 
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
 #: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
 #: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
 #: stock/serializers.py:294
@@ -987,8 +995,8 @@ msgstr ""
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr ""
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr ""
@@ -1015,15 +1023,15 @@ msgstr ""
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
 msgid "Location"
 msgstr ""
 
@@ -1032,12 +1040,12 @@ msgid "Location for completed build outputs"
 msgstr ""
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: build/templates/build/detail.html:62 order/models.py:663
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
 msgid "Status"
 msgstr ""
 
@@ -1118,7 +1126,7 @@ msgstr ""
 msgid "Item must be in stock"
 msgstr ""
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr ""
@@ -1135,7 +1143,7 @@ msgstr ""
 msgid "This stock item has already been allocated to this build output"
 msgstr ""
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr ""
 
@@ -1233,13 +1241,13 @@ msgid "Stock has not been fully allocated to this Build Order"
 msgstr ""
 
 #: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr ""
 
@@ -1266,14 +1274,14 @@ msgid "Completed"
 msgstr ""
 
 #: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2436
 msgid "Sales Order"
 msgstr ""
 
@@ -1308,8 +1316,8 @@ msgstr ""
 msgid "Stock can be taken from any available location."
 msgstr ""
 
-#: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
 msgid "Destination"
 msgstr ""
 
@@ -1322,11 +1330,11 @@ msgid "Allocated Parts"
 msgstr ""
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
-#: templates/js/translated/build.js:1184
+#: stock/templates/stock/item_base.html:170
+#: templates/js/translated/build.js:1179
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1335,7 +1343,7 @@ msgstr ""
 #: build/templates/build/detail.html:126
 #: order/templates/order/order_base.html:149
 #: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
 msgid "Created"
 msgstr ""
 
@@ -1355,7 +1363,7 @@ msgstr ""
 msgid "Allocate Stock to Build"
 msgstr ""
 
-#: build/templates/build/detail.html:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
 msgid "Unallocate stock"
 msgstr ""
 
@@ -1385,8 +1393,8 @@ msgstr ""
 
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: company/templates/company/detail.html:85
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr ""
 
@@ -1461,8 +1469,8 @@ msgid "Completed Build Outputs"
 msgstr ""
 
 #: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
 #: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:82
 #: order/templates/order/sales_order_detail.html:129
@@ -1476,11 +1484,11 @@ msgstr ""
 msgid "Build Notes"
 msgstr ""
 
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
 msgid "Allocation Complete"
 msgstr ""
 
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
@@ -1492,18 +1500,6 @@ msgstr ""
 msgid "Print Build Orders"
 msgstr ""
 
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr ""
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr ""
-
 #: build/templates/build/sidebar.html:5
 msgid "Build Order Details"
 msgstr ""
@@ -1727,7 +1723,7 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
 #: templates/js/translated/table_filters.js:168
 #: templates/js/translated/table_filters.js:460
 msgid "Assembly"
@@ -2413,7 +2409,7 @@ msgid "Price break quantity"
 msgstr ""
 
 #: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: company/templates/company/supplier_part.html:263 order/models.py:975
 #: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
 msgid "Price"
 msgstr ""
@@ -2556,7 +2552,7 @@ msgstr ""
 
 #: company/models.py:104 company/templates/company/company_base.html:100
 #: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
 msgid "Website"
 msgstr ""
 
@@ -2651,10 +2647,11 @@ msgstr ""
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: stock/templates/stock/item_base.html:212
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
 #: templates/js/translated/table_filters.js:411
 msgid "Manufacturer"
 msgstr ""
@@ -2665,8 +2662,10 @@ msgstr ""
 
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr ""
@@ -2686,7 +2685,7 @@ msgstr ""
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr ""
 
@@ -2696,8 +2695,9 @@ msgstr ""
 
 #: company/models.py:427
 #: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
 msgid "Value"
 msgstr ""
 
@@ -2708,7 +2708,7 @@ msgstr ""
 #: company/models.py:434 part/models.py:940 part/models.py:2549
 #: part/templates/part/part_base.html:280
 #: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
 msgid "Units"
 msgstr ""
 
@@ -2721,11 +2721,12 @@ msgid "Linked manufacturer part must reference the same base part"
 msgstr ""
 
 #: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: stock/templates/stock/item_base.html:229
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2736,8 +2737,9 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
 msgid "SKU"
 msgstr ""
 
@@ -2773,8 +2775,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr ""
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
 msgid "Packaging"
 msgstr ""
 
@@ -2804,12 +2806,12 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
 msgid "Company"
 msgstr ""
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr ""
 
@@ -2822,7 +2824,7 @@ msgid "Edit company information"
 msgstr ""
 
 #: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
 msgid "Edit Company"
 msgstr ""
 
@@ -2845,12 +2847,12 @@ msgstr ""
 msgid "Download image from URL"
 msgstr ""
 
-#: company/templates/company/company_base.html:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr ""
@@ -2869,7 +2871,7 @@ msgid "Upload Image"
 msgstr ""
 
 #: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
+#: company/templates/company/manufacturer_part_sidebar.html:7
 #: templates/InvenTree/search.html:118
 msgid "Supplier Parts"
 msgstr ""
@@ -2884,28 +2886,19 @@ msgstr ""
 msgid "New Supplier Part"
 msgstr ""
 
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr ""
-
 #: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
 #: part/templates/part/category.html:176
 msgid "Order parts"
 msgstr ""
 
 #: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
 msgid "Delete parts"
 msgstr ""
 
 #: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
 msgid "Delete Parts"
 msgstr ""
 
@@ -2917,88 +2910,76 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
 msgid "New Manufacturer Part"
 msgstr ""
 
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
 msgid "Supplier Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
 #: company/templates/company/sidebar.html:12
 #: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
 #: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:235 templates/navbar.html:50
 #: users/models.py:43
 msgid "Purchase Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
 #: order/templates/order/purchase_orders.html:17
 msgid "Create new purchase order"
 msgstr ""
 
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr ""
 
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
 #: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
 #: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
 #: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:259 templates/navbar.html:61
 #: users/models.py:44
 msgid "Sales Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
 #: order/templates/order/sales_orders.html:20
 msgid "Create new sales order"
 msgstr ""
 
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
 #: order/templates/order/sales_orders.html:21
 msgid "New Sales Order"
 msgstr ""
 
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
 msgid "Assigned Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
 msgid "Company Notes"
 msgstr ""
 
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr ""
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr ""
-
 #: company/templates/company/index.html:8
 msgid "Supplier List"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
 #: templates/navbar.html:49
 msgid "Manufacturers"
 msgstr ""
@@ -3011,12 +2992,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -3032,55 +3013,46 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:119
 #: company/templates/company/supplier_part.html:15 company/views.py:41
 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
 msgid "Suppliers"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
 #: part/templates/part/detail.html:363
 msgid "Delete supplier parts"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
 msgid "Delete"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:164
+#: company/templates/company/manufacturer_part.html:166
 #: company/templates/company/manufacturer_part_sidebar.html:5
 #: part/templates/part/category_sidebar.html:19
 #: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8
 msgid "Parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
 #: part/templates/part/detail.html:184
 #: templates/InvenTree/settings/category.html:12
 #: templates/InvenTree/settings/part.html:66
 msgid "New Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
 msgid "Delete parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
 msgid "Add Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr ""
-
 #: company/templates/company/sidebar.html:6
 msgid "Manufactured Parts"
 msgstr ""
@@ -3099,19 +3071,19 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
 msgid "Delete supplier part"
 msgstr ""
 
@@ -3186,11 +3158,11 @@ msgstr ""
 #: part/templates/part/part_sidebar.html:14
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
 #: templates/InvenTree/settings/sidebar.html:43
 #: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
 #: templates/navbar.html:31
 msgid "Stock"
 msgstr ""
@@ -3216,8 +3188,8 @@ msgstr ""
 #: stock/templates/stock/location.html:161
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
+#: templates/js/translated/stock.js:2307 users/models.py:41
 msgid "Stock Items"
 msgstr ""
 
@@ -3229,7 +3201,7 @@ msgstr ""
 msgid "New Manufacturer"
 msgstr ""
 
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
 #: templates/navbar.html:60
 msgid "Customers"
 msgstr ""
@@ -3238,7 +3210,7 @@ msgstr ""
 msgid "New Customer"
 msgstr ""
 
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:212
 msgid "Companies"
 msgstr ""
 
@@ -3328,305 +3300,313 @@ msgstr ""
 msgid "Part query filters (comma-separated value of key=value pairs)"
 msgstr ""
 
-#: order/models.py:130
+#: order/models.py:137
 msgid "Order description"
 msgstr ""
 
-#: order/models.py:132
+#: order/models.py:139 order/models.py:1274
 msgid "Link to external page"
 msgstr ""
 
-#: order/models.py:140
+#: order/models.py:147
 msgid "Created By"
 msgstr ""
 
-#: order/models.py:147
+#: order/models.py:154
 msgid "User or group responsible for this order"
 msgstr ""
 
-#: order/models.py:152
+#: order/models.py:159
 msgid "Order notes"
 msgstr ""
 
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
 msgid "Order reference"
 msgstr ""
 
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
 msgid "Purchase order status"
 msgstr ""
 
-#: order/models.py:253
+#: order/models.py:311
 msgid "Company from which the items are being ordered"
 msgstr ""
 
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
 msgid "Supplier Reference"
 msgstr ""
 
-#: order/models.py:256
+#: order/models.py:314
 msgid "Supplier order reference code"
 msgstr ""
 
-#: order/models.py:263
+#: order/models.py:321
 msgid "received by"
 msgstr ""
 
-#: order/models.py:268
+#: order/models.py:326
 msgid "Issue Date"
 msgstr ""
 
-#: order/models.py:269
+#: order/models.py:327
 msgid "Date order was issued"
 msgstr ""
 
-#: order/models.py:274
+#: order/models.py:332
 msgid "Target Delivery Date"
 msgstr ""
 
-#: order/models.py:275
+#: order/models.py:333
 msgid "Expected date for order delivery. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:281
+#: order/models.py:339
 msgid "Date order was completed"
 msgstr ""
 
-#: order/models.py:310
+#: order/models.py:368
 msgid "Part supplier must match PO supplier"
 msgstr ""
 
-#: order/models.py:456
+#: order/models.py:514
 msgid "Quantity must be a positive number"
 msgstr ""
 
-#: order/models.py:601
+#: order/models.py:659
 msgid "Company to which the items are being sold"
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer Reference "
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer order reference code"
 msgstr ""
 
-#: order/models.py:612
+#: order/models.py:670
 msgid "Target date for order completion. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
 msgid "Shipment Date"
 msgstr ""
 
-#: order/models.py:622
+#: order/models.py:680
 msgid "shipped by"
 msgstr ""
 
-#: order/models.py:688
+#: order/models.py:746
 msgid "Order cannot be completed as no parts have been assigned"
 msgstr ""
 
-#: order/models.py:692
+#: order/models.py:750
 msgid "Only a pending order can be marked as complete"
 msgstr ""
 
-#: order/models.py:695
+#: order/models.py:753
 msgid "Order cannot be completed as there are incomplete shipments"
 msgstr ""
 
-#: order/models.py:698
+#: order/models.py:756
 msgid "Order cannot be completed as there are incomplete line items"
 msgstr ""
 
-#: order/models.py:878
+#: order/models.py:936
 msgid "Item quantity"
 msgstr ""
 
-#: order/models.py:884
+#: order/models.py:942
 msgid "Line item reference"
 msgstr ""
 
-#: order/models.py:886
+#: order/models.py:944
 msgid "Line item notes"
 msgstr ""
 
-#: order/models.py:891
+#: order/models.py:949
 msgid "Target shipping date for this line item"
 msgstr ""
 
-#: order/models.py:909
+#: order/models.py:967
 msgid "Context"
 msgstr ""
 
-#: order/models.py:910
+#: order/models.py:968
 msgid "Additional context for this line"
 msgstr ""
 
-#: order/models.py:918
+#: order/models.py:976
 msgid "Unit price"
 msgstr ""
 
-#: order/models.py:951
+#: order/models.py:1009
 msgid "Supplier part must match supplier"
 msgstr ""
 
-#: order/models.py:958
+#: order/models.py:1016
 msgid "deleted"
 msgstr ""
 
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
 msgid "Order"
 msgstr ""
 
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
 msgid "Purchase Order"
 msgstr ""
 
-#: order/models.py:984
+#: order/models.py:1042
 msgid "Supplier part"
 msgstr ""
 
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
 msgstr ""
 
-#: order/models.py:992
+#: order/models.py:1050
 msgid "Number of items received"
 msgstr ""
 
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1900
 msgid "Purchase Price"
 msgstr ""
 
-#: order/models.py:1000
+#: order/models.py:1058
 msgid "Unit purchase price"
 msgstr ""
 
-#: order/models.py:1008
+#: order/models.py:1066
 msgid "Where does the Purchaser want this item to be stored?"
 msgstr ""
 
-#: order/models.py:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
 #: part/templates/part/prices.html:119 part/templates/part/prices.html:288
 msgid "Sale Price"
 msgstr ""
 
-#: order/models.py:1079
+#: order/models.py:1137
 msgid "Unit sale price"
 msgstr ""
 
-#: order/models.py:1084
+#: order/models.py:1142
 msgid "Shipped quantity"
 msgstr ""
 
-#: order/models.py:1171
+#: order/models.py:1229
 msgid "Date of shipment"
 msgstr ""
 
-#: order/models.py:1178
+#: order/models.py:1236
 msgid "Checked By"
 msgstr ""
 
-#: order/models.py:1179
+#: order/models.py:1237
 msgid "User who checked this shipment"
 msgstr ""
 
-#: order/models.py:1187
+#: order/models.py:1245
 msgid "Shipment number"
 msgstr ""
 
-#: order/models.py:1194
+#: order/models.py:1252
 msgid "Shipment notes"
 msgstr ""
 
-#: order/models.py:1201
+#: order/models.py:1259
 msgid "Tracking Number"
 msgstr ""
 
-#: order/models.py:1202
+#: order/models.py:1260
 msgid "Shipment tracking information"
 msgstr ""
 
-#: order/models.py:1213
+#: order/models.py:1267
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1268
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1285
 msgid "Shipment has already been sent"
 msgstr ""
 
-#: order/models.py:1216
+#: order/models.py:1288
 msgid "Shipment has no allocated stock items"
 msgstr ""
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1395 order/models.py:1397
 msgid "Stock item has not been assigned"
 msgstr ""
 
-#: order/models.py:1317
+#: order/models.py:1401
 msgid "Cannot allocate stock item to a line with a different part"
 msgstr ""
 
-#: order/models.py:1319
+#: order/models.py:1403
 msgid "Cannot allocate stock to a line without a part"
 msgstr ""
 
-#: order/models.py:1322
+#: order/models.py:1406
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr ""
 
-#: order/models.py:1326
+#: order/models.py:1410
 msgid "StockItem is over-allocated"
 msgstr ""
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1416 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr ""
 
-#: order/models.py:1335
+#: order/models.py:1419
 msgid "Sales order does not match shipment"
 msgstr ""
 
-#: order/models.py:1336
+#: order/models.py:1420
 msgid "Shipment does not match sales order"
 msgstr ""
 
-#: order/models.py:1344
+#: order/models.py:1428
 msgid "Line"
 msgstr ""
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr ""
 
-#: order/models.py:1353
+#: order/models.py:1437
 msgid "Sales order shipment reference"
 msgstr ""
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr ""
 
-#: order/models.py:1366
+#: order/models.py:1450
 msgid "Select stock item to allocate"
 msgstr ""
 
-#: order/models.py:1369
+#: order/models.py:1453
 msgid "Enter stock allocation quantity"
 msgstr ""
 
@@ -3662,7 +3642,7 @@ msgstr ""
 msgid "Purchase order must match supplier"
 msgstr ""
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr ""
 
@@ -3674,11 +3654,11 @@ msgstr ""
 msgid "Select destination location for received items"
 msgstr ""
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr ""
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr ""
 
@@ -3714,35 +3694,35 @@ msgstr ""
 msgid "Sale price currency"
 msgstr ""
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr ""
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr ""
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr ""
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr ""
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr ""
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr ""
 
@@ -3832,7 +3812,12 @@ msgstr ""
 msgid "Total cost"
 msgstr ""
 
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
 msgid "Edit Purchase Order"
 msgstr ""
 
@@ -3863,9 +3848,9 @@ msgstr ""
 #: part/templates/part/import_wizard/ajax_match_references.html:42
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3929,7 +3914,7 @@ msgstr ""
 msgid "Order Notes"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
 msgid "Add Order Line"
 msgstr ""
 
@@ -3947,12 +3932,12 @@ msgid "Print packing list"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
 msgid "Complete Sales Order"
 msgstr ""
 
@@ -3961,7 +3946,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2471
 msgid "Customer Reference"
 msgstr ""
 
@@ -3971,7 +3956,7 @@ msgstr ""
 msgid "Completed Shipments"
 msgstr ""
 
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
 msgid "Edit Sales Order"
 msgstr ""
 
@@ -3985,7 +3970,7 @@ msgid "Pending Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
 msgid "Actions"
 msgstr ""
 
@@ -4113,7 +4098,7 @@ msgid "Part Category"
 msgstr ""
 
 #: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
 #: users/models.py:38
 msgid "Part Categories"
 msgstr ""
@@ -4124,7 +4109,7 @@ msgstr ""
 #: part/templates/part/category_sidebar.html:9
 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
 #: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
 #: templates/navbar.html:24 users/models.py:39
 msgid "Parts"
 msgstr ""
@@ -4202,7 +4187,7 @@ msgstr ""
 
 #: part/models.py:842 part/templates/part/part_base.html:266
 #: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
 msgid "IPN"
 msgstr ""
 
@@ -4316,7 +4301,7 @@ msgid "Test with this name already exists for this part"
 msgstr ""
 
 #: part/models.py:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
 msgid "Test Name"
 msgstr ""
 
@@ -4448,7 +4433,7 @@ msgid "BOM quantity for this BOM item"
 msgstr ""
 
 #: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
 #: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
@@ -4482,7 +4467,7 @@ msgid "BOM line checksum"
 msgstr ""
 
 #: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
 #: templates/js/translated/table_filters.js:68
 #: templates/js/translated/table_filters.js:88
 msgid "Inherited"
@@ -4493,7 +4478,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
 #: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
 msgid "Allow Variants"
 msgstr ""
 
@@ -4714,6 +4699,11 @@ msgstr ""
 msgid "New Part"
 msgstr ""
 
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr ""
+
 #: part/templates/part/category.html:172
 msgid "Set category"
 msgstr ""
@@ -4902,46 +4892,46 @@ msgstr ""
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
 msgid "Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
 msgid "Add Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
@@ -5084,8 +5074,8 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
 #: templates/js/translated/model_renderers.js:192
 #: templates/js/translated/part.js:581 templates/js/translated/part.js:658
 msgid "Inactive"
@@ -5101,20 +5091,22 @@ msgstr ""
 msgid "This part is a variant of %(link)s"
 msgstr ""
 
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr ""
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr ""
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
 msgid "Can Build"
 msgstr ""
 
@@ -5133,7 +5125,7 @@ msgid "Latest Serial Number"
 msgstr ""
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr ""
 
@@ -5172,7 +5164,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -5291,7 +5283,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
 msgid "Supplier Cost"
 msgstr ""
 
@@ -5530,7 +5522,7 @@ msgstr ""
 msgid "Barcode associated with Stock Item"
 msgstr ""
 
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
 msgid "Label printing failed"
 msgstr ""
 
@@ -5770,12 +5762,12 @@ msgid "Stock Item Test Report"
 msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr ""
 
@@ -5796,7 +5788,7 @@ msgstr ""
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
 msgid "Date"
 msgstr ""
 
@@ -5815,7 +5807,7 @@ msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2589
 msgid "Serial"
 msgstr ""
 
@@ -5832,7 +5824,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr ""
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr ""
 
@@ -5894,7 +5886,7 @@ msgstr ""
 msgid "Packaging this stock item is stored in"
 msgstr ""
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr ""
 
@@ -5934,8 +5926,8 @@ msgstr ""
 msgid "Destination Sales Order"
 msgstr ""
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1816
 msgid "Expiry Date"
 msgstr ""
 
@@ -6215,11 +6207,11 @@ msgstr ""
 msgid "Installed Stock Items"
 msgstr ""
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
 msgid "Install Stock Item"
 msgstr ""
 
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
 msgid "Add Test Result"
 msgstr ""
 
@@ -6311,110 +6303,114 @@ msgstr ""
 msgid "Delete stock item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:244
-msgid "This stock item has not passed all required tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:252
-msgid "This stock item is allocated to Sales Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr ""
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:284
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:292
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1693
+msgid "No location set"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1832
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr ""
 
@@ -6486,8 +6482,8 @@ msgstr ""
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:198 users/models.py:40
 msgid "Stock Locations"
 msgstr ""
 
@@ -6539,7 +6535,7 @@ msgstr ""
 msgid "Child Items"
 msgstr ""
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr ""
 
@@ -6564,55 +6560,55 @@ msgstr ""
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr ""
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr ""
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr ""
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr ""
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr ""
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr ""
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr ""
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr ""
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr ""
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr ""
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr ""
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr ""
 
@@ -7331,9 +7327,9 @@ msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr ""
@@ -7602,14 +7598,14 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
 #: templates/js/translated/part.js:530
 #: templates/js/translated/table_filters.js:178
 msgid "Available"
@@ -7644,67 +7640,67 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
-#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
 msgid "No Response"
 msgstr ""
 
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
 msgid "No response from the InvenTree server"
 msgstr ""
 
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
 msgid "Error 400: Bad request"
 msgstr ""
 
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
 msgid "API request returned error code 400"
 msgstr ""
 
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
 msgid "Error 401: Not Authenticated"
 msgstr ""
 
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
 msgid "Authentication credentials not supplied"
 msgstr ""
 
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
 msgid "Error 403: Permission Denied"
 msgstr ""
 
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
 msgid "You do not have the required permissions to access this function"
 msgstr ""
 
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
 msgid "Error 404: Resource Not Found"
 msgstr ""
 
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
 msgid "The requested resource could not be located on the server"
 msgstr ""
 
-#: templates/js/translated/api.js:217
+#: templates/js/translated/api.js:262
 msgid "Error 405: Method Not Allowed"
 msgstr ""
 
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
 msgid "HTTP method not allowed at URL"
 msgstr ""
 
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
 msgid "Error 408: Timeout"
 msgstr ""
 
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
 msgid "Connection timeout while requesting data from server"
 msgstr ""
 
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
 msgid "Unhandled Error Code"
 msgstr ""
 
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
 msgid "Error code"
 msgstr ""
 
@@ -7765,7 +7761,7 @@ msgid "Unknown response from server"
 msgstr ""
 
 #: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "Invalid server response"
 msgstr ""
 
@@ -7847,12 +7843,12 @@ msgid "Download BOM Template"
 msgstr ""
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
 msgid "Format"
 msgstr ""
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr ""
 
@@ -7932,84 +7928,84 @@ msgstr ""
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
 msgid "Load BOM for subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
 msgid "No Stock Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
 msgid "Includes variant and substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
 #: templates/js/translated/part.js:690
 msgid "Includes variant stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
 msgid "Includes substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -8131,262 +8127,270 @@ msgstr ""
 msgid "Location not specified"
 msgstr ""
 
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
 msgid "No active build outputs found"
 msgstr ""
 
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
 msgid "Allocated Stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
 msgid "No tracked BOM items for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
 msgid "Completed Tests"
 msgstr ""
 
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
 msgid "No required tests for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
 msgid "Edit stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
 msgid "Delete stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
 msgid "Edit Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
 msgid "Remove Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
 msgid "Substitute parts available"
 msgstr ""
 
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
 msgid "Quantity Per"
 msgstr ""
 
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
 msgid "Insufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
 msgid "Sufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
 msgid "Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
 msgid "Build stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
 msgid "Order stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
 msgid "Allocate stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr ""
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
 msgid "You must select at least one part to allocate"
 msgstr ""
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
 msgid "All Parts Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
 msgid "All selected parts have been fully allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
 msgid "Select source location (leave blank to take from all locations)"
 msgstr ""
 
-#: templates/js/translated/build.js:2117
+#: templates/js/translated/build.js:2100
 msgid "Allocate Stock Items to Build Order"
 msgstr ""
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
 msgid "No matching stock locations"
 msgstr ""
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
 msgid "No matching stock items"
 msgstr ""
 
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
 msgid "Automatic Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
 msgstr ""
 
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
 msgid "If a location is specifed, stock will only be allocated from that location"
 msgstr ""
 
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
 msgstr ""
 
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
 msgstr ""
 
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
 msgid "Allocate Stock Items"
 msgstr ""
 
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
 msgid "Select"
 msgstr ""
 
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
 msgid "Build order is overdue"
 msgstr ""
 
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
 msgid "Progress"
 msgstr ""
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
 msgid "No information"
 msgstr ""
 
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
 msgid "No parts allocated for"
 msgstr ""
 
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
 msgid "Add Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
 msgid "Edit Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:342
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr ""
+
+#: templates/js/translated/company.js:595
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
 #: templates/js/translated/part.js:650
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
 #: templates/js/translated/part.js:654
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
 msgid "No supplier parts found"
 msgstr ""
 
@@ -8424,61 +8428,61 @@ msgstr ""
 msgid "Create filter"
 msgstr ""
 
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
 msgid "Action Prohibited"
 msgstr ""
 
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
 msgid "Create operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
 msgid "Update operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
 msgid "Delete operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
 msgid "View operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
 msgid "Keep this form open"
 msgstr ""
 
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
 msgid "Enter a valid number"
 msgstr ""
 
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
 #: templates/modals.html:43
 msgid "Form errors exist"
 msgstr ""
 
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
 msgid "No results found"
 msgstr ""
 
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
 msgid "Searching"
 msgstr ""
 
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
 msgid "Clear input"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "File Column"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "Field Name"
 msgstr ""
 
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
 msgid "Select Columns"
 msgstr ""
 
@@ -8552,62 +8556,62 @@ msgstr ""
 msgid "Select Label Template"
 msgstr ""
 
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
 msgid "Cancel"
 msgstr ""
 
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
 #: templates/modals.html:28 templates/modals.html:51
 msgid "Submit"
 msgstr ""
 
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
 msgid "Form Title"
 msgstr ""
 
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
 msgid "Waiting for server..."
 msgstr ""
 
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
 msgid "Show Error Information"
 msgstr ""
 
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
 msgid "Accept"
 msgstr ""
 
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
 msgid "Loading Data"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Invalid response from server"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Form data missing from server response"
 msgstr ""
 
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
 msgid "Error posting form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "JSON response missing form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
 msgid "Error 400: Bad Request"
 msgstr ""
 
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
 msgid "Server returned error code 400"
 msgstr ""
 
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
 msgid "Error requesting form data"
 msgstr ""
 
@@ -8665,377 +8669,381 @@ msgstr ""
 msgid "Notifications will load here"
 msgstr ""
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
 msgstr ""
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
 msgstr ""
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr ""
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr ""
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr ""
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr ""
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr ""
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr ""
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr ""
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr ""
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr ""
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr ""
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr ""
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
 msgid "Stock Status"
 msgstr ""
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr ""
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr ""
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr ""
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
 msgid "Order is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
 msgid "Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
 msgid "Duplicate Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
 msgid "Edit Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
 msgid "Delete Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1856
 msgid "No line items found"
 msgstr ""
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
 msgid "Total"
 msgstr ""
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
 msgid "Total Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
 msgid "Duplicate line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
 msgid "Edit line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
 msgid "Delete line item"
 msgstr ""
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
 msgid "Duplicate line"
 msgstr ""
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
 msgid "Edit line"
 msgstr ""
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
 msgid "Delete line"
 msgstr ""
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
 msgid "Duplicate Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
 msgid "Edit Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
 msgid "Delete Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2279
 msgid "No matching line"
 msgstr ""
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2392
 msgid "No sales orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2462
 msgid "Invalid Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2549
 msgid "Edit shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2552
 msgid "Complete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2557
 msgid "Delete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2577
 msgid "Edit Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2594
 msgid "Delete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2628
 msgid "No matching shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2638
 msgid "Shipment Reference"
 msgstr ""
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2662
 msgid "Not shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2668
 msgid "Tracking"
 msgstr ""
 
-#: templates/js/translated/order.js:2603
+#: templates/js/translated/order.js:2672
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:2841
 msgid "Add Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2892
 msgid "Confirm stock allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2893
 msgid "Allocate Stock Items to Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:3101
 msgid "No sales order allocations found"
 msgstr ""
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:3182
 msgid "Edit Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:3199
 msgid "Confirm Delete Operation"
 msgstr ""
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:3200
 msgid "Delete Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
 msgid "Shipped to customer"
 msgstr ""
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
 msgid "Stock location not specified"
 msgstr ""
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3623
 msgid "Allocate serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3629
 msgid "Purchase stock"
 msgstr ""
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
 msgid "Calculate price"
 msgstr ""
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3648
 msgid "Cannot be deleted as items have been shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3651
 msgid "Cannot be deleted as items have been allocated"
 msgstr ""
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3733
 msgid "Allocate Serial Numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3842
 msgid "Update Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3856
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:4092
 msgid "No matching lines"
 msgstr ""
 
@@ -9217,7 +9225,7 @@ msgid "No category"
 msgstr ""
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2238
 msgid "Display as list"
 msgstr ""
 
@@ -9225,7 +9233,7 @@ msgstr ""
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
 msgid "Display as tree"
 msgstr ""
 
@@ -9233,7 +9241,7 @@ msgstr ""
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
 msgid "Path"
 msgstr ""
 
@@ -9241,12 +9249,12 @@ msgstr ""
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
 msgid "Delete test result"
 msgstr ""
 
@@ -9367,11 +9375,11 @@ msgstr ""
 msgid "Sales Order(s) must be selected before printing report"
 msgstr ""
 
-#: templates/js/translated/search.js:307
+#: templates/js/translated/search.js:352
 msgid "Minimize results"
 msgstr ""
 
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:355
 msgid "Remove results"
 msgstr ""
 
@@ -9531,204 +9539,204 @@ msgstr ""
 msgid "Confirm stock adjustment"
 msgstr ""
 
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
 msgid "PASS"
 msgstr ""
 
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
 msgid "FAIL"
 msgstr ""
 
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
 msgid "NO RESULT"
 msgstr ""
 
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
 msgid "Pass test"
 msgstr ""
 
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
 msgid "Add test result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
 msgid "No test results found"
 msgstr ""
 
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
 msgid "Test Date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
 msgid "Edit Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
 msgid "Delete Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
 msgid "In production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
 msgid "Installed in Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
 msgid "Assigned to Sales Order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
 msgid "No stock location set"
 msgstr ""
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1712
 msgid "Stock item is in production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1717
 msgid "Stock item assigned to sales order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1720
 msgid "Stock item assigned to customer"
 msgstr ""
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr ""
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr ""
-
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
 msgid "Serialized stock item has been allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
 msgid "Stock item has been fully allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
 msgid "Stock item has been partially allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1730
 msgid "Stock item has been installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1734
+msgid "Stock item has expired"
+msgstr ""
+
+#: templates/js/translated/stock.js:1736
+msgid "Stock item will expire soon"
+msgstr ""
+
+#: templates/js/translated/stock.js:1743
 msgid "Stock item has been rejected"
 msgstr ""
 
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1745
 msgid "Stock item is lost"
 msgstr ""
 
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1747
 msgid "Stock item is destroyed"
 msgstr ""
 
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1751
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr ""
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1802
 msgid "Stocktake"
 msgstr ""
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1884
 msgid "Supplier part not specified"
 msgstr ""
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1922
 msgid "No stock items matching query"
 msgstr ""
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2095
 msgid "Set Stock Status"
 msgstr ""
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2109
 msgid "Select Status Code"
 msgstr ""
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2110
 msgid "Status code must be selected"
 msgstr ""
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2365
 msgid "Details"
 msgstr ""
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2381
 msgid "Part information unavailable"
 msgstr ""
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2403
 msgid "Location no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2422
 msgid "Purchase order no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
 msgid "Customer no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2459
 msgid "Stock item no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2482
 msgid "Added"
 msgstr ""
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2490
 msgid "Removed"
 msgstr ""
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2566
 msgid "No installed items"
 msgstr ""
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
 msgid "Uninstall Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2666
 msgid "Select stock item to uninstall"
 msgstr ""
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2687
 msgid "Install another stock item into this item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2688
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr ""
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2690
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2691
 msgid "The Stock Item is currently available in stock"
 msgstr ""
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2692
 msgid "The Stock Item is not already installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2693
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr ""
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2706
 msgid "Select part to install"
 msgstr ""
 
@@ -9960,69 +9968,81 @@ msgstr ""
 msgid "Purchasable"
 msgstr ""
 
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr ""
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr ""
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
 msgid "Export Table Data"
 msgstr ""
 
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
 msgid "Select File Format"
 msgstr ""
 
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
 msgid "Loading data"
 msgstr ""
 
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
 msgid "rows per page"
 msgstr ""
 
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
 msgid "Showing all rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "Showing"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "to"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "of"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
 #: templates/search.html:8 templates/search_form.html:6
 #: templates/search_form.html:7
 msgid "Search"
 msgstr ""
 
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
 msgid "No matching results"
 msgstr ""
 
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
 msgid "Hide/Show pagination"
 msgstr ""
 
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
 msgid "Refresh"
 msgstr ""
 
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
 msgid "Toggle"
 msgstr ""
 
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
 msgid "Columns"
 msgstr ""
 
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
 msgid "All"
 msgstr ""
 
diff --git a/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/InvenTree/locale/es_MX/LC_MESSAGES/django.po
index 4f129aea77..50aaad0606 100644
--- a/InvenTree/locale/es_MX/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es_MX/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
+"POT-Creation-Date: 2022-05-25 01:01+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -135,10 +135,12 @@ msgid "Select file to attach"
 msgstr ""
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:132 order/models.py:1215
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
 #: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:829 templates/js/translated/order.js:2469
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr ""
 
@@ -160,7 +162,7 @@ msgstr ""
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2522
 msgid "User"
 msgstr ""
 
@@ -208,7 +210,7 @@ msgstr ""
 #: templates/InvenTree/settings/settings.html:327
 #: templates/js/translated/company.js:641 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2292
 msgid "Name"
 msgstr ""
 
@@ -227,12 +229,12 @@ msgstr ""
 #: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
 #: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
 #: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/company.js:840 templates/js/translated/order.js:1577
+#: templates/js/translated/order.js:1785 templates/js/translated/order.js:2269
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
 #: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/stock.js:2304 templates/js/translated/stock.js:2359
 msgid "Description"
 msgstr ""
 
@@ -437,7 +439,7 @@ msgid "Returned"
 msgstr ""
 
 #: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: templates/js/translated/order.js:3057 templates/js/translated/order.js:3374
 msgid "Shipped"
 msgstr ""
 
@@ -517,7 +519,7 @@ msgstr ""
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2030
 msgid "Merged stock items"
 msgstr ""
 
@@ -644,9 +646,9 @@ msgstr ""
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
 #: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1816
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:3241
+#: templates/js/translated/order.js:3726
 msgid "Reference"
 msgstr ""
 
@@ -684,15 +686,15 @@ msgstr ""
 #: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
 #: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
 #: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/company.js:749 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2612
+#: templates/js/translated/order.js:3010 templates/js/translated/order.js:3225
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2385
+#: templates/js/translated/stock.js:2580 templates/js/translated/stock.js:2714
 msgid "Part"
 msgstr ""
 
@@ -709,7 +711,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr ""
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2600
 msgid "Source Location"
 msgstr ""
 
@@ -750,7 +752,7 @@ msgid "Build status code"
 msgstr ""
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr ""
 
@@ -759,7 +761,7 @@ msgid "Batch code for this build output"
 msgstr ""
 
 #: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2282
 msgid "Creation Date"
 msgstr ""
 
@@ -793,7 +795,7 @@ msgstr ""
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1611
 msgid "Responsible"
 msgstr ""
 
@@ -805,7 +807,7 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr ""
 
@@ -822,10 +824,10 @@ msgstr ""
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
 #: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/company.js:845 templates/js/translated/order.js:1937
+#: templates/js/translated/order.js:2088 templates/js/translated/order.js:2480
+#: templates/js/translated/order.js:3399 templates/js/translated/order.js:3797
+#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1926
 msgid "Notes"
 msgstr ""
 
@@ -858,7 +860,7 @@ msgstr ""
 msgid "Stock item is over-allocated"
 msgstr ""
 
-#: build/models.py:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1355
 msgid "Allocation quantity must be greater than zero"
 msgstr ""
 
@@ -870,7 +872,7 @@ msgstr ""
 msgid "Selected stock item not found in BOM"
 msgstr ""
 
-#: build/models.py:1375 stock/templates/stock/item_base.html:335
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
 #: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
 #: templates/navbar.html:38
 msgid "Build"
@@ -880,18 +882,18 @@ msgstr ""
 msgid "Build to allocate parts"
 msgstr ""
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
 #: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2613
+#: templates/js/translated/order.js:2917 templates/js/translated/order.js:2922
+#: templates/js/translated/order.js:3017 templates/js/translated/order.js:3107
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2458
 msgid "Stock Item"
 msgstr ""
 
@@ -903,7 +905,7 @@ msgstr ""
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:877 order/models.py:1395 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
 #: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
@@ -914,25 +916,24 @@ 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
 #: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
 #: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
 #: templates/js/translated/build.js:2103
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1822 templates/js/translated/order.js:2023
+#: templates/js/translated/order.js:2614 templates/js/translated/order.js:2936
+#: templates/js/translated/order.js:3024 templates/js/translated/order.js:3113
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3732
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2507 templates/js/translated/stock.js:2592
 msgid "Quantity"
 msgstr ""
 
@@ -988,8 +989,8 @@ msgstr ""
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr ""
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr ""
@@ -1016,15 +1017,15 @@ msgstr ""
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:2929 templates/js/translated/order.js:3032
+#: templates/js/translated/order.js:3040 templates/js/translated/order.js:3121
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2399
 msgid "Location"
 msgstr ""
 
@@ -1034,11 +1035,11 @@ msgstr ""
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
 #: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
 #: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1581
+#: templates/js/translated/order.js:2274 templates/js/translated/stock.js:1772
+#: templates/js/translated/stock.js:2476 templates/js/translated/stock.js:2608
 msgid "Status"
 msgstr ""
 
@@ -1119,7 +1120,7 @@ msgstr ""
 msgid "Item must be in stock"
 msgstr ""
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr ""
@@ -1136,7 +1137,7 @@ msgstr ""
 msgid "This stock item has already been allocated to this build output"
 msgstr ""
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr ""
 
@@ -1238,9 +1239,9 @@ msgstr ""
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1598
+#: templates/js/translated/order.js:1884 templates/js/translated/order.js:2290
+#: templates/js/translated/order.js:3310 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr ""
 
@@ -1268,13 +1269,13 @@ msgstr ""
 
 #: build/templates/build/build_base.html:176
 #: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: order/models.py:1165 order/models.py:1299
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2229
 msgid "Sales Order"
 msgstr ""
 
@@ -1310,7 +1311,7 @@ msgid "Stock can be taken from any available location."
 msgstr ""
 
 #: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1926
 msgid "Destination"
 msgstr ""
 
@@ -1323,11 +1324,11 @@ msgid "Allocated Parts"
 msgstr ""
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
+#: stock/templates/stock/item_base.html:170
 #: templates/js/translated/build.js:1184
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1786
+#: templates/js/translated/stock.js:2615
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1387,7 +1388,7 @@ msgstr ""
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
 #: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr ""
 
@@ -2652,7 +2653,7 @@ msgstr ""
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
+#: stock/templates/stock/item_base.html:212
 #: templates/js/translated/company.js:333
 #: templates/js/translated/company.js:517
 #: templates/js/translated/company.js:800 templates/js/translated/part.js:235
@@ -2667,7 +2668,7 @@ msgstr ""
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
 #: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:818 templates/js/translated/order.js:1804
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr ""
@@ -2687,7 +2688,7 @@ msgstr ""
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr ""
 
@@ -2724,9 +2725,9 @@ msgstr ""
 #: company/models.py:550 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:87 order/models.py:252
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
+#: stock/templates/stock/item_base.html:229
 #: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: templates/js/translated/company.js:774 templates/js/translated/order.js:1564
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2737,7 +2738,7 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1791
 #: templates/js/translated/part.js:227 templates/js/translated/part.js:942
 msgid "SKU"
 msgstr ""
@@ -2774,8 +2775,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr ""
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1922
 msgid "Packaging"
 msgstr ""
 
@@ -2810,7 +2811,7 @@ msgid "Company"
 msgstr ""
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr ""
 
@@ -2849,9 +2850,9 @@ msgstr ""
 #: company/templates/company/company_base.html:86 order/models.py:600
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:2251
+#: templates/js/translated/stock.js:2440
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr ""
@@ -3100,9 +3101,9 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:790 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1879
 msgid "Supplier Part"
 msgstr ""
 
@@ -3218,7 +3219,7 @@ msgstr ""
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
 #: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/js/translated/stock.js:2316 users/models.py:41
 msgid "Stock Items"
 msgstr ""
 
@@ -3333,7 +3334,7 @@ msgstr ""
 msgid "Order description"
 msgstr ""
 
-#: order/models.py:132
+#: order/models.py:132 order/models.py:1216
 msgid "Link to external page"
 msgstr ""
 
@@ -3362,7 +3363,7 @@ msgid "Company from which the items are being ordered"
 msgstr ""
 
 #: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:1573
 msgid "Supplier Reference"
 msgstr ""
 
@@ -3419,7 +3420,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
 msgstr ""
 
 #: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: templates/js/translated/order.js:2298 templates/js/translated/order.js:2449
 msgid "Shipment Date"
 msgstr ""
 
@@ -3480,8 +3481,8 @@ msgid "deleted"
 msgstr ""
 
 #: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1164 order/models.py:1299
+#: templates/js/translated/order.js:2905
 msgid "Order"
 msgstr ""
 
@@ -3489,10 +3490,10 @@ msgstr ""
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1542
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:2421
 msgid "Purchase Order"
 msgstr ""
 
@@ -3501,7 +3502,7 @@ msgid "Supplier part"
 msgstr ""
 
 #: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:1906
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
@@ -3512,8 +3513,8 @@ msgid "Number of items received"
 msgstr ""
 
 #: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1910
 msgid "Purchase Price"
 msgstr ""
 
@@ -3566,68 +3567,76 @@ msgstr ""
 msgid "Shipment tracking information"
 msgstr ""
 
-#: order/models.py:1213
+#: order/models.py:1209
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1210
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1227
 msgid "Shipment has already been sent"
 msgstr ""
 
-#: order/models.py:1216
+#: order/models.py:1230
 msgid "Shipment has no allocated stock items"
 msgstr ""
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1337 order/models.py:1339
 msgid "Stock item has not been assigned"
 msgstr ""
 
-#: order/models.py:1317
+#: order/models.py:1343
 msgid "Cannot allocate stock item to a line with a different part"
 msgstr ""
 
-#: order/models.py:1319
+#: order/models.py:1345
 msgid "Cannot allocate stock to a line without a part"
 msgstr ""
 
-#: order/models.py:1322
+#: order/models.py:1348
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr ""
 
-#: order/models.py:1326
+#: order/models.py:1352
 msgid "StockItem is over-allocated"
 msgstr ""
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1358 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr ""
 
-#: order/models.py:1335
+#: order/models.py:1361
 msgid "Sales order does not match shipment"
 msgstr ""
 
-#: order/models.py:1336
+#: order/models.py:1362
 msgid "Shipment does not match sales order"
 msgstr ""
 
-#: order/models.py:1344
+#: order/models.py:1370
 msgid "Line"
 msgstr ""
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1378 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr ""
 
-#: order/models.py:1353
+#: order/models.py:1379
 msgid "Sales order shipment reference"
 msgstr ""
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1391 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr ""
 
-#: order/models.py:1366
+#: order/models.py:1392
 msgid "Select stock item to allocate"
 msgstr ""
 
-#: order/models.py:1369
+#: order/models.py:1395
 msgid "Enter stock allocation quantity"
 msgstr ""
 
@@ -3663,7 +3672,7 @@ msgstr ""
 msgid "Purchase order must match supplier"
 msgstr ""
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr ""
 
@@ -3675,11 +3684,11 @@ msgstr ""
 msgid "Select destination location for received items"
 msgstr ""
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr ""
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr ""
 
@@ -3715,35 +3724,35 @@ msgstr ""
 msgid "Sale price currency"
 msgstr ""
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr ""
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr ""
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr ""
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr ""
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr ""
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr ""
 
@@ -3865,8 +3874,8 @@ msgstr ""
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
 #: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2524 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3948,7 +3957,7 @@ msgid "Print packing list"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
 msgstr ""
 
@@ -3962,7 +3971,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2264
 msgid "Customer Reference"
 msgstr ""
 
@@ -5102,16 +5111,18 @@ msgstr ""
 msgid "This part is a variant of %(link)s"
 msgstr ""
 
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3336
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr ""
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr ""
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr ""
 
@@ -5134,7 +5145,7 @@ msgid "Latest Serial Number"
 msgstr ""
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr ""
 
@@ -5772,12 +5783,12 @@ msgid "Stock Item Test Report"
 msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
 #: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3022
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr ""
 
@@ -5798,7 +5809,7 @@ msgstr ""
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1590 templates/js/translated/stock.js:2349
 msgid "Date"
 msgstr ""
 
@@ -5817,7 +5828,7 @@ msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2598
 msgid "Serial"
 msgstr ""
 
@@ -5834,7 +5845,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr ""
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr ""
 
@@ -5896,7 +5907,7 @@ msgstr ""
 msgid "Packaging this stock item is stored in"
 msgstr ""
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr ""
 
@@ -5936,8 +5947,8 @@ msgstr ""
 msgid "Destination Sales Order"
 msgstr ""
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1826
 msgid "Expiry Date"
 msgstr ""
 
@@ -6217,7 +6228,7 @@ msgstr ""
 msgid "Installed Stock Items"
 msgstr ""
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2742
 msgid "Install Stock Item"
 msgstr ""
 
@@ -6313,110 +6324,114 @@ msgstr ""
 msgid "Delete stock item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:244
-msgid "This stock item has not passed all required tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:252
-msgid "This stock item is allocated to Sales Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr ""
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:284
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:292
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1710
+msgid "No location set"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1842
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr ""
 
@@ -6541,7 +6556,7 @@ msgstr ""
 msgid "Child Items"
 msgstr ""
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr ""
 
@@ -6566,55 +6581,55 @@ msgstr ""
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr ""
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr ""
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr ""
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr ""
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr ""
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr ""
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr ""
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr ""
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr ""
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr ""
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr ""
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr ""
 
@@ -7335,7 +7350,7 @@ msgstr ""
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
 #: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
 #: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr ""
@@ -7851,12 +7866,12 @@ msgid "Download BOM Template"
 msgstr ""
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:53
 msgid "Format"
 msgstr ""
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr ""
 
@@ -8156,12 +8171,12 @@ msgid "No required tests for this build"
 msgstr ""
 
 #: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/order.js:3059
 msgid "Edit stock allocation"
 msgstr ""
 
 #: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/order.js:3060
 msgid "Delete stock allocation"
 msgstr ""
 
@@ -8190,11 +8205,11 @@ msgid "Sufficient stock available"
 msgstr ""
 
 #: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3346
 msgid "Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3426
 msgid "Build stock"
 msgstr ""
 
@@ -8202,21 +8217,21 @@ msgstr ""
 msgid "Order stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3419
 msgid "Allocate stock"
 msgstr ""
 
 #: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2586
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr ""
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2587
 msgid "You must select at least one part to allocate"
 msgstr ""
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2535
 msgid "Specify stock allocation quantity"
 msgstr ""
 
@@ -8228,7 +8243,7 @@ msgstr ""
 msgid "All selected parts have been fully allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2601
 msgid "Select source location (leave blank to take from all locations)"
 msgstr ""
 
@@ -8236,11 +8251,11 @@ msgstr ""
 msgid "Allocate Stock Items to Build Order"
 msgstr ""
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2698
 msgid "No matching stock locations"
 msgstr ""
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2775
 msgid "No matching stock items"
 msgstr ""
 
@@ -8274,7 +8289,7 @@ msgstr ""
 
 #: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
 #: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/stock.js:2286
 msgid "Select"
 msgstr ""
 
@@ -8286,7 +8301,7 @@ msgstr ""
 msgid "Progress"
 msgstr ""
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2528
 msgid "No user information"
 msgstr ""
 
@@ -8314,7 +8329,7 @@ msgstr ""
 msgid "Delete Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr ""
 
@@ -8669,377 +8684,381 @@ msgstr ""
 msgid "Notifications will load here"
 msgstr ""
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
 msgstr ""
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
 msgstr ""
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr ""
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr ""
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr ""
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr ""
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr ""
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr ""
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr ""
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr ""
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr ""
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr ""
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr ""
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2089
 msgid "Stock Status"
 msgstr ""
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr ""
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr ""
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr ""
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1531 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1556 templates/js/translated/order.js:2241
 msgid "Order is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1606 templates/js/translated/order.js:2306
+#: templates/js/translated/order.js:2436
 msgid "Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1680 templates/js/translated/order.js:3478
 msgid "Duplicate Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1697 templates/js/translated/order.js:3500
 msgid "Edit Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1710 templates/js/translated/order.js:3511
 msgid "Delete Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1753
 msgid "No line items found"
 msgstr ""
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1780 templates/js/translated/order.js:3235
 msgid "Total"
 msgstr ""
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2036
+#: templates/js/translated/order.js:3260 templates/js/translated/order.js:3745
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1849 templates/js/translated/order.js:2052
+#: templates/js/translated/order.js:3276 templates/js/translated/order.js:3761
 msgid "Total Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1890 templates/js/translated/order.js:3318
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:1949 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3432
 msgid "Duplicate line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:1954 templates/js/translated/order.js:3433
 msgid "Edit line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:1955 templates/js/translated/order.js:3437
 msgid "Delete line item"
 msgstr ""
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2101 templates/js/translated/order.js:3810
 msgid "Duplicate line"
 msgstr ""
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2102 templates/js/translated/order.js:3811
 msgid "Edit line"
 msgstr ""
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2103 templates/js/translated/order.js:3812
 msgid "Delete line"
 msgstr ""
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2133 templates/js/translated/order.js:3842
 msgid "Duplicate Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2154 templates/js/translated/order.js:3863
 msgid "Edit Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2165 templates/js/translated/order.js:3874
 msgid "Delete Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2176
 msgid "No matching line"
 msgstr ""
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2217
 msgid "No sales orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2255
 msgid "Invalid Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2342
 msgid "Edit shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2345
 msgid "Complete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2350
 msgid "Delete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2370
 msgid "Edit Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2387
 msgid "Delete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2421
 msgid "No matching shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2431
 msgid "Shipment Reference"
 msgstr ""
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2455
 msgid "Not shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2461
 msgid "Tracking"
 msgstr ""
 
-#: templates/js/translated/order.js:2603
+#: templates/js/translated/order.js:2465
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:2634
 msgid "Add Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2685
 msgid "Confirm stock allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2686
 msgid "Allocate Stock Items to Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:2894
 msgid "No sales order allocations found"
 msgstr ""
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:2975
 msgid "Edit Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:2992
 msgid "Confirm Delete Operation"
 msgstr ""
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:2993
 msgid "Delete Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
+#: templates/js/translated/order.js:3036 templates/js/translated/order.js:3125
 #: templates/js/translated/stock.js:1545
 msgid "Shipped to customer"
 msgstr ""
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3044 templates/js/translated/order.js:3134
 msgid "Stock location not specified"
 msgstr ""
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3416
 msgid "Allocate serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3422
 msgid "Purchase stock"
 msgstr ""
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3429 templates/js/translated/order.js:3627
 msgid "Calculate price"
 msgstr ""
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3441
 msgid "Cannot be deleted as items have been shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3444
 msgid "Cannot be deleted as items have been allocated"
 msgstr ""
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3526
 msgid "Allocate Serial Numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3635
 msgid "Update Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3649
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:3885
 msgid "No matching lines"
 msgstr ""
 
@@ -9221,7 +9240,7 @@ msgid "No category"
 msgstr ""
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2247
 msgid "Display as list"
 msgstr ""
 
@@ -9229,7 +9248,7 @@ msgstr ""
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2266
 msgid "Display as tree"
 msgstr ""
 
@@ -9237,7 +9256,7 @@ msgstr ""
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2310
 msgid "Path"
 msgstr ""
 
@@ -9587,26 +9606,18 @@ msgstr ""
 msgid "No stock location set"
 msgstr ""
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1722
 msgid "Stock item is in production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1727
 msgid "Stock item assigned to sales order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1730
 msgid "Stock item assigned to customer"
 msgstr ""
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr ""
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr ""
-
 #: templates/js/translated/stock.js:1733
 msgid "Serialized stock item has been allocated"
 msgstr ""
@@ -9619,120 +9630,128 @@ msgstr ""
 msgid "Stock item has been partially allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1740
 msgid "Stock item has been installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1749
-msgid "Stock item has been rejected"
+#: templates/js/translated/stock.js:1744
+msgid "Stock item has expired"
 msgstr ""
 
-#: templates/js/translated/stock.js:1751
-msgid "Stock item is lost"
+#: templates/js/translated/stock.js:1746
+msgid "Stock item will expire soon"
 msgstr ""
 
 #: templates/js/translated/stock.js:1753
-msgid "Stock item is destroyed"
+msgid "Stock item has been rejected"
+msgstr ""
+
+#: templates/js/translated/stock.js:1755
+msgid "Stock item is lost"
 msgstr ""
 
 #: templates/js/translated/stock.js:1757
+msgid "Stock item is destroyed"
+msgstr ""
+
+#: templates/js/translated/stock.js:1761
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr ""
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1812
 msgid "Stocktake"
 msgstr ""
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1894
 msgid "Supplier part not specified"
 msgstr ""
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1932
 msgid "No stock items matching query"
 msgstr ""
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2104
 msgid "Set Stock Status"
 msgstr ""
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2118
 msgid "Select Status Code"
 msgstr ""
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2119
 msgid "Status code must be selected"
 msgstr ""
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2374
 msgid "Details"
 msgstr ""
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2390
 msgid "Part information unavailable"
 msgstr ""
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2412
 msgid "Location no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2431
 msgid "Purchase order no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2450
 msgid "Customer no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2468
 msgid "Stock item no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2491
 msgid "Added"
 msgstr ""
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2499
 msgid "Removed"
 msgstr ""
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2575
 msgid "No installed items"
 msgstr ""
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2662
 msgid "Uninstall Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2675
 msgid "Select stock item to uninstall"
 msgstr ""
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2696
 msgid "Install another stock item into this item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2697
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr ""
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2699
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2700
 msgid "The Stock Item is currently available in stock"
 msgstr ""
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2701
 msgid "The Stock Item is not already installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2702
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr ""
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2715
 msgid "Select part to install"
 msgstr ""
 
diff --git a/InvenTree/locale/fa/LC_MESSAGES/django.po b/InvenTree/locale/fa/LC_MESSAGES/django.po
index ef019684e0..b026d309a0 100644
--- a/InvenTree/locale/fa/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fa/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
-"PO-Revision-Date: 2022-05-24 01:42\n"
+"POT-Creation-Date: 2022-05-28 23:41+0000\n"
+"PO-Revision-Date: 2022-05-29 01:47\n"
 "Last-Translator: \n"
 "Language-Team: Persian\n"
 "Language: fa_IR\n"
@@ -21,7 +21,7 @@ msgstr ""
 msgid "API endpoint not found"
 msgstr "Address e API peida nashod"
 
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
 msgid "Error details can be found in the admin panel"
 msgstr ""
 
@@ -30,7 +30,7 @@ msgid "Enter date"
 msgstr ""
 
 #: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
 msgid "Confirm"
 msgstr "تایید"
 
@@ -79,7 +79,7 @@ msgstr ""
 msgid "Duplicate serial: {sn}"
 msgstr ""
 
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
 msgid "Invalid quantity provided"
 msgstr ""
 
@@ -134,10 +134,12 @@ msgid "Select file to attach"
 msgstr ""
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:139 order/models.py:1273
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr ""
 
@@ -159,7 +161,7 @@ msgstr ""
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2513
 msgid "User"
 msgstr ""
 
@@ -205,9 +207,10 @@ msgstr ""
 #: templates/InvenTree/settings/plugin.html:132
 #: templates/InvenTree/settings/plugin_settings.html:23
 #: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2283
 msgid "Name"
 msgstr ""
 
@@ -216,22 +219,22 @@ msgstr ""
 #: company/models.py:575 company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
 #: part/templates/part/part_base.html:167
 #: part/templates/part/set_category.html:14 report/models.py:182
 #: report/models.py:547 report/models.py:586
 #: report/templates/report/inventree_build_order_base.html:118
 #: stock/templates/stock/location.html:103
 #: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
 msgid "Description"
 msgstr ""
 
@@ -406,7 +409,7 @@ msgid "InvenTree system health checks failed"
 msgstr ""
 
 #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
 msgid "Pending"
 msgstr ""
 
@@ -414,141 +417,145 @@ msgstr ""
 msgid "Placed"
 msgstr ""
 
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
 #: order/templates/order/order_base.html:134
 #: order/templates/order/sales_order_base.html:133
 msgid "Complete"
 msgstr ""
 
 #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
 msgid "Cancelled"
 msgstr ""
 
 #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
 msgid "Lost"
 msgstr ""
 
 #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
 msgid "Returned"
 msgstr ""
 
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
 msgid "Shipped"
 msgstr ""
 
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
 msgid "OK"
 msgstr ""
 
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
 msgid "Attention needed"
 msgstr ""
 
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
 msgid "Damaged"
 msgstr ""
 
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
 msgid "Destroyed"
 msgstr ""
 
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
 msgid "Rejected"
 msgstr ""
 
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
 msgid "Legacy stock tracking entry"
 msgstr ""
 
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
 msgid "Stock item created"
 msgstr ""
 
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
 msgid "Edited stock item"
 msgstr ""
 
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
 msgid "Assigned serial number"
 msgstr ""
 
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
 msgid "Stock counted"
 msgstr ""
 
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
 msgid "Stock manually added"
 msgstr ""
 
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
 msgid "Stock manually removed"
 msgstr ""
 
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
 msgid "Location changed"
 msgstr ""
 
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
 msgid "Installed into assembly"
 msgstr ""
 
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
 msgid "Removed from assembly"
 msgstr ""
 
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
 msgid "Installed component item"
 msgstr ""
 
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
 msgid "Removed component item"
 msgstr ""
 
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
 msgid "Split from parent item"
 msgstr ""
 
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
 msgid "Merged stock items"
 msgstr ""
 
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
 msgid "Converted to variant"
 msgstr ""
 
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
 msgid "Sent to customer"
 msgstr ""
 
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
 msgid "Returned from customer"
 msgstr ""
 
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
 msgid "Build order output created"
 msgstr ""
 
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
 msgid "Build order output completed"
 msgstr ""
 
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
 msgid "Consumed by build order"
 msgstr ""
 
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
 msgid "Received against purchase order"
 msgstr ""
 
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
 msgid "Production"
 msgstr ""
 
@@ -637,15 +644,15 @@ msgstr ""
 msgid "Build Order Reference"
 msgstr ""
 
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
 #: part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
 msgid "Reference"
 msgstr ""
 
@@ -664,7 +671,7 @@ msgstr ""
 
 #: build/models.py:225 build/templates/build/build_base.html:77
 #: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
 #: part/models.py:2303 part/models.py:2319 part/models.py:2338
 #: part/models.py:2355 part/models.py:2457 part/models.py:2579
 #: part/models.py:2669 part/models.py:2760 part/models.py:3050
@@ -679,19 +686,21 @@ msgstr ""
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
 #: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
 msgid "Part"
 msgstr ""
 
@@ -708,7 +717,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr ""
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
 msgid "Source Location"
 msgstr ""
 
@@ -749,7 +758,7 @@ msgid "Build status code"
 msgstr ""
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr ""
 
@@ -757,12 +766,12 @@ msgstr ""
 msgid "Batch code for this build output"
 msgstr ""
 
-#: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
 msgid "Creation Date"
 msgstr ""
 
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
 msgid "Target completion date"
 msgstr ""
 
@@ -770,8 +779,8 @@ msgstr ""
 msgid "Target date for build completion. Build will be overdue after this date."
 msgstr ""
 
-#: build/models.py:300 order/models.py:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
 msgid "Completion Date"
 msgstr ""
 
@@ -779,7 +788,7 @@ msgstr ""
 msgid "completed by"
 msgstr ""
 
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
 msgid "Issued by"
 msgstr ""
 
@@ -788,11 +797,11 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
 msgid "Responsible"
 msgstr ""
 
@@ -804,14 +813,14 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr ""
 
 #: build/models.py:334 build/serializers.py:390
 #: build/templates/build/sidebar.html:21 company/models.py:134
 #: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
 #: order/templates/order/po_sidebar.html:11
 #: order/templates/order/so_sidebar.html:17 part/models.py:983
 #: part/templates/part/part_sidebar.html:59
@@ -820,11 +829,11 @@ msgstr ""
 #: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
 msgid "Notes"
 msgstr ""
 
@@ -857,7 +866,7 @@ msgstr ""
 msgid "Stock item is over-allocated"
 msgstr ""
 
-#: build/models.py:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1413
 msgid "Allocation quantity must be greater than zero"
 msgstr ""
 
@@ -869,8 +878,8 @@ msgstr ""
 msgid "Selected stock item not found in BOM"
 msgstr ""
 
-#: build/models.py:1375 stock/templates/stock/item_base.html:335
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
 #: templates/navbar.html:38
 msgid "Build"
 msgstr ""
@@ -879,18 +888,18 @@ msgstr ""
 msgid "Build to allocate parts"
 msgstr ""
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2449
 msgid "Stock Item"
 msgstr ""
 
@@ -902,10 +911,10 @@ msgstr ""
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_build_order_base.html:114
@@ -913,25 +922,24 @@ 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
 msgid "Quantity"
 msgstr ""
 
@@ -948,7 +956,7 @@ msgid "Destination stock item"
 msgstr ""
 
 #: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
 msgid "Build Output"
 msgstr ""
 
@@ -972,7 +980,7 @@ msgstr ""
 msgid "Enter quantity for build output"
 msgstr ""
 
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
 #: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
 #: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
 #: stock/serializers.py:294
@@ -987,8 +995,8 @@ msgstr ""
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr ""
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr ""
@@ -1015,15 +1023,15 @@ msgstr ""
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
 msgid "Location"
 msgstr ""
 
@@ -1032,12 +1040,12 @@ msgid "Location for completed build outputs"
 msgstr ""
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: build/templates/build/detail.html:62 order/models.py:663
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
 msgid "Status"
 msgstr ""
 
@@ -1118,7 +1126,7 @@ msgstr ""
 msgid "Item must be in stock"
 msgstr ""
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr ""
@@ -1135,7 +1143,7 @@ msgstr ""
 msgid "This stock item has already been allocated to this build output"
 msgstr ""
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr ""
 
@@ -1233,13 +1241,13 @@ msgid "Stock has not been fully allocated to this Build Order"
 msgstr ""
 
 #: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr ""
 
@@ -1266,14 +1274,14 @@ msgid "Completed"
 msgstr ""
 
 #: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2436
 msgid "Sales Order"
 msgstr ""
 
@@ -1308,8 +1316,8 @@ msgstr ""
 msgid "Stock can be taken from any available location."
 msgstr ""
 
-#: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
 msgid "Destination"
 msgstr ""
 
@@ -1322,11 +1330,11 @@ msgid "Allocated Parts"
 msgstr ""
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
-#: templates/js/translated/build.js:1184
+#: stock/templates/stock/item_base.html:170
+#: templates/js/translated/build.js:1179
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1335,7 +1343,7 @@ msgstr ""
 #: build/templates/build/detail.html:126
 #: order/templates/order/order_base.html:149
 #: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
 msgid "Created"
 msgstr ""
 
@@ -1355,7 +1363,7 @@ msgstr ""
 msgid "Allocate Stock to Build"
 msgstr ""
 
-#: build/templates/build/detail.html:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
 msgid "Unallocate stock"
 msgstr ""
 
@@ -1385,8 +1393,8 @@ msgstr ""
 
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: company/templates/company/detail.html:85
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr ""
 
@@ -1461,8 +1469,8 @@ msgid "Completed Build Outputs"
 msgstr ""
 
 #: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
 #: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:82
 #: order/templates/order/sales_order_detail.html:129
@@ -1476,11 +1484,11 @@ msgstr ""
 msgid "Build Notes"
 msgstr ""
 
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
 msgid "Allocation Complete"
 msgstr ""
 
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
@@ -1492,18 +1500,6 @@ msgstr ""
 msgid "Print Build Orders"
 msgstr ""
 
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr ""
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr ""
-
 #: build/templates/build/sidebar.html:5
 msgid "Build Order Details"
 msgstr ""
@@ -1727,7 +1723,7 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
 #: templates/js/translated/table_filters.js:168
 #: templates/js/translated/table_filters.js:460
 msgid "Assembly"
@@ -2413,7 +2409,7 @@ msgid "Price break quantity"
 msgstr ""
 
 #: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: company/templates/company/supplier_part.html:263 order/models.py:975
 #: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
 msgid "Price"
 msgstr ""
@@ -2556,7 +2552,7 @@ msgstr ""
 
 #: company/models.py:104 company/templates/company/company_base.html:100
 #: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
 msgid "Website"
 msgstr ""
 
@@ -2651,10 +2647,11 @@ msgstr ""
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: stock/templates/stock/item_base.html:212
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
 #: templates/js/translated/table_filters.js:411
 msgid "Manufacturer"
 msgstr ""
@@ -2665,8 +2662,10 @@ msgstr ""
 
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr ""
@@ -2686,7 +2685,7 @@ msgstr ""
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr ""
 
@@ -2696,8 +2695,9 @@ msgstr ""
 
 #: company/models.py:427
 #: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
 msgid "Value"
 msgstr ""
 
@@ -2708,7 +2708,7 @@ msgstr ""
 #: company/models.py:434 part/models.py:940 part/models.py:2549
 #: part/templates/part/part_base.html:280
 #: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
 msgid "Units"
 msgstr ""
 
@@ -2721,11 +2721,12 @@ msgid "Linked manufacturer part must reference the same base part"
 msgstr ""
 
 #: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: stock/templates/stock/item_base.html:229
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2736,8 +2737,9 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
 msgid "SKU"
 msgstr ""
 
@@ -2773,8 +2775,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr ""
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
 msgid "Packaging"
 msgstr ""
 
@@ -2804,12 +2806,12 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
 msgid "Company"
 msgstr ""
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr ""
 
@@ -2822,7 +2824,7 @@ msgid "Edit company information"
 msgstr ""
 
 #: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
 msgid "Edit Company"
 msgstr ""
 
@@ -2845,12 +2847,12 @@ msgstr ""
 msgid "Download image from URL"
 msgstr ""
 
-#: company/templates/company/company_base.html:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr ""
@@ -2869,7 +2871,7 @@ msgid "Upload Image"
 msgstr ""
 
 #: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
+#: company/templates/company/manufacturer_part_sidebar.html:7
 #: templates/InvenTree/search.html:118
 msgid "Supplier Parts"
 msgstr ""
@@ -2884,28 +2886,19 @@ msgstr ""
 msgid "New Supplier Part"
 msgstr ""
 
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr ""
-
 #: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
 #: part/templates/part/category.html:176
 msgid "Order parts"
 msgstr ""
 
 #: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
 msgid "Delete parts"
 msgstr ""
 
 #: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
 msgid "Delete Parts"
 msgstr ""
 
@@ -2917,88 +2910,76 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
 msgid "New Manufacturer Part"
 msgstr ""
 
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
 msgid "Supplier Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
 #: company/templates/company/sidebar.html:12
 #: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
 #: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:235 templates/navbar.html:50
 #: users/models.py:43
 msgid "Purchase Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
 #: order/templates/order/purchase_orders.html:17
 msgid "Create new purchase order"
 msgstr ""
 
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr ""
 
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
 #: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
 #: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
 #: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:259 templates/navbar.html:61
 #: users/models.py:44
 msgid "Sales Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
 #: order/templates/order/sales_orders.html:20
 msgid "Create new sales order"
 msgstr ""
 
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
 #: order/templates/order/sales_orders.html:21
 msgid "New Sales Order"
 msgstr ""
 
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
 msgid "Assigned Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
 msgid "Company Notes"
 msgstr ""
 
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr ""
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr ""
-
 #: company/templates/company/index.html:8
 msgid "Supplier List"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
 #: templates/navbar.html:49
 msgid "Manufacturers"
 msgstr ""
@@ -3011,12 +2992,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -3032,55 +3013,46 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:119
 #: company/templates/company/supplier_part.html:15 company/views.py:41
 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
 msgid "Suppliers"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
 #: part/templates/part/detail.html:363
 msgid "Delete supplier parts"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
 msgid "Delete"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:164
+#: company/templates/company/manufacturer_part.html:166
 #: company/templates/company/manufacturer_part_sidebar.html:5
 #: part/templates/part/category_sidebar.html:19
 #: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8
 msgid "Parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
 #: part/templates/part/detail.html:184
 #: templates/InvenTree/settings/category.html:12
 #: templates/InvenTree/settings/part.html:66
 msgid "New Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
 msgid "Delete parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
 msgid "Add Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr ""
-
 #: company/templates/company/sidebar.html:6
 msgid "Manufactured Parts"
 msgstr ""
@@ -3099,19 +3071,19 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
 msgid "Delete supplier part"
 msgstr ""
 
@@ -3186,11 +3158,11 @@ msgstr ""
 #: part/templates/part/part_sidebar.html:14
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
 #: templates/InvenTree/settings/sidebar.html:43
 #: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
 #: templates/navbar.html:31
 msgid "Stock"
 msgstr ""
@@ -3216,8 +3188,8 @@ msgstr ""
 #: stock/templates/stock/location.html:161
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
+#: templates/js/translated/stock.js:2307 users/models.py:41
 msgid "Stock Items"
 msgstr ""
 
@@ -3229,7 +3201,7 @@ msgstr ""
 msgid "New Manufacturer"
 msgstr ""
 
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
 #: templates/navbar.html:60
 msgid "Customers"
 msgstr ""
@@ -3238,7 +3210,7 @@ msgstr ""
 msgid "New Customer"
 msgstr ""
 
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:212
 msgid "Companies"
 msgstr ""
 
@@ -3328,305 +3300,313 @@ msgstr ""
 msgid "Part query filters (comma-separated value of key=value pairs)"
 msgstr ""
 
-#: order/models.py:130
+#: order/models.py:137
 msgid "Order description"
 msgstr ""
 
-#: order/models.py:132
+#: order/models.py:139 order/models.py:1274
 msgid "Link to external page"
 msgstr ""
 
-#: order/models.py:140
+#: order/models.py:147
 msgid "Created By"
 msgstr ""
 
-#: order/models.py:147
+#: order/models.py:154
 msgid "User or group responsible for this order"
 msgstr ""
 
-#: order/models.py:152
+#: order/models.py:159
 msgid "Order notes"
 msgstr ""
 
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
 msgid "Order reference"
 msgstr ""
 
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
 msgid "Purchase order status"
 msgstr ""
 
-#: order/models.py:253
+#: order/models.py:311
 msgid "Company from which the items are being ordered"
 msgstr ""
 
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
 msgid "Supplier Reference"
 msgstr ""
 
-#: order/models.py:256
+#: order/models.py:314
 msgid "Supplier order reference code"
 msgstr ""
 
-#: order/models.py:263
+#: order/models.py:321
 msgid "received by"
 msgstr ""
 
-#: order/models.py:268
+#: order/models.py:326
 msgid "Issue Date"
 msgstr ""
 
-#: order/models.py:269
+#: order/models.py:327
 msgid "Date order was issued"
 msgstr ""
 
-#: order/models.py:274
+#: order/models.py:332
 msgid "Target Delivery Date"
 msgstr ""
 
-#: order/models.py:275
+#: order/models.py:333
 msgid "Expected date for order delivery. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:281
+#: order/models.py:339
 msgid "Date order was completed"
 msgstr ""
 
-#: order/models.py:310
+#: order/models.py:368
 msgid "Part supplier must match PO supplier"
 msgstr ""
 
-#: order/models.py:456
+#: order/models.py:514
 msgid "Quantity must be a positive number"
 msgstr ""
 
-#: order/models.py:601
+#: order/models.py:659
 msgid "Company to which the items are being sold"
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer Reference "
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer order reference code"
 msgstr ""
 
-#: order/models.py:612
+#: order/models.py:670
 msgid "Target date for order completion. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
 msgid "Shipment Date"
 msgstr ""
 
-#: order/models.py:622
+#: order/models.py:680
 msgid "shipped by"
 msgstr ""
 
-#: order/models.py:688
+#: order/models.py:746
 msgid "Order cannot be completed as no parts have been assigned"
 msgstr ""
 
-#: order/models.py:692
+#: order/models.py:750
 msgid "Only a pending order can be marked as complete"
 msgstr ""
 
-#: order/models.py:695
+#: order/models.py:753
 msgid "Order cannot be completed as there are incomplete shipments"
 msgstr ""
 
-#: order/models.py:698
+#: order/models.py:756
 msgid "Order cannot be completed as there are incomplete line items"
 msgstr ""
 
-#: order/models.py:878
+#: order/models.py:936
 msgid "Item quantity"
 msgstr ""
 
-#: order/models.py:884
+#: order/models.py:942
 msgid "Line item reference"
 msgstr ""
 
-#: order/models.py:886
+#: order/models.py:944
 msgid "Line item notes"
 msgstr ""
 
-#: order/models.py:891
+#: order/models.py:949
 msgid "Target shipping date for this line item"
 msgstr ""
 
-#: order/models.py:909
+#: order/models.py:967
 msgid "Context"
 msgstr ""
 
-#: order/models.py:910
+#: order/models.py:968
 msgid "Additional context for this line"
 msgstr ""
 
-#: order/models.py:918
+#: order/models.py:976
 msgid "Unit price"
 msgstr ""
 
-#: order/models.py:951
+#: order/models.py:1009
 msgid "Supplier part must match supplier"
 msgstr ""
 
-#: order/models.py:958
+#: order/models.py:1016
 msgid "deleted"
 msgstr ""
 
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
 msgid "Order"
 msgstr ""
 
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
 msgid "Purchase Order"
 msgstr ""
 
-#: order/models.py:984
+#: order/models.py:1042
 msgid "Supplier part"
 msgstr ""
 
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
 msgstr ""
 
-#: order/models.py:992
+#: order/models.py:1050
 msgid "Number of items received"
 msgstr ""
 
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1900
 msgid "Purchase Price"
 msgstr ""
 
-#: order/models.py:1000
+#: order/models.py:1058
 msgid "Unit purchase price"
 msgstr ""
 
-#: order/models.py:1008
+#: order/models.py:1066
 msgid "Where does the Purchaser want this item to be stored?"
 msgstr ""
 
-#: order/models.py:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
 #: part/templates/part/prices.html:119 part/templates/part/prices.html:288
 msgid "Sale Price"
 msgstr ""
 
-#: order/models.py:1079
+#: order/models.py:1137
 msgid "Unit sale price"
 msgstr ""
 
-#: order/models.py:1084
+#: order/models.py:1142
 msgid "Shipped quantity"
 msgstr ""
 
-#: order/models.py:1171
+#: order/models.py:1229
 msgid "Date of shipment"
 msgstr ""
 
-#: order/models.py:1178
+#: order/models.py:1236
 msgid "Checked By"
 msgstr ""
 
-#: order/models.py:1179
+#: order/models.py:1237
 msgid "User who checked this shipment"
 msgstr ""
 
-#: order/models.py:1187
+#: order/models.py:1245
 msgid "Shipment number"
 msgstr ""
 
-#: order/models.py:1194
+#: order/models.py:1252
 msgid "Shipment notes"
 msgstr ""
 
-#: order/models.py:1201
+#: order/models.py:1259
 msgid "Tracking Number"
 msgstr ""
 
-#: order/models.py:1202
+#: order/models.py:1260
 msgid "Shipment tracking information"
 msgstr ""
 
-#: order/models.py:1213
+#: order/models.py:1267
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1268
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1285
 msgid "Shipment has already been sent"
 msgstr ""
 
-#: order/models.py:1216
+#: order/models.py:1288
 msgid "Shipment has no allocated stock items"
 msgstr ""
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1395 order/models.py:1397
 msgid "Stock item has not been assigned"
 msgstr ""
 
-#: order/models.py:1317
+#: order/models.py:1401
 msgid "Cannot allocate stock item to a line with a different part"
 msgstr ""
 
-#: order/models.py:1319
+#: order/models.py:1403
 msgid "Cannot allocate stock to a line without a part"
 msgstr ""
 
-#: order/models.py:1322
+#: order/models.py:1406
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr ""
 
-#: order/models.py:1326
+#: order/models.py:1410
 msgid "StockItem is over-allocated"
 msgstr ""
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1416 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr ""
 
-#: order/models.py:1335
+#: order/models.py:1419
 msgid "Sales order does not match shipment"
 msgstr ""
 
-#: order/models.py:1336
+#: order/models.py:1420
 msgid "Shipment does not match sales order"
 msgstr ""
 
-#: order/models.py:1344
+#: order/models.py:1428
 msgid "Line"
 msgstr ""
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr ""
 
-#: order/models.py:1353
+#: order/models.py:1437
 msgid "Sales order shipment reference"
 msgstr ""
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr ""
 
-#: order/models.py:1366
+#: order/models.py:1450
 msgid "Select stock item to allocate"
 msgstr ""
 
-#: order/models.py:1369
+#: order/models.py:1453
 msgid "Enter stock allocation quantity"
 msgstr ""
 
@@ -3662,7 +3642,7 @@ msgstr ""
 msgid "Purchase order must match supplier"
 msgstr ""
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr ""
 
@@ -3674,11 +3654,11 @@ msgstr ""
 msgid "Select destination location for received items"
 msgstr ""
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr ""
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr ""
 
@@ -3714,35 +3694,35 @@ msgstr ""
 msgid "Sale price currency"
 msgstr ""
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr ""
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr ""
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr ""
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr ""
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr ""
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr ""
 
@@ -3832,7 +3812,12 @@ msgstr ""
 msgid "Total cost"
 msgstr ""
 
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
 msgid "Edit Purchase Order"
 msgstr ""
 
@@ -3863,9 +3848,9 @@ msgstr ""
 #: part/templates/part/import_wizard/ajax_match_references.html:42
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3929,7 +3914,7 @@ msgstr ""
 msgid "Order Notes"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
 msgid "Add Order Line"
 msgstr ""
 
@@ -3947,12 +3932,12 @@ msgid "Print packing list"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
 msgid "Complete Sales Order"
 msgstr ""
 
@@ -3961,7 +3946,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2471
 msgid "Customer Reference"
 msgstr ""
 
@@ -3971,7 +3956,7 @@ msgstr ""
 msgid "Completed Shipments"
 msgstr ""
 
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
 msgid "Edit Sales Order"
 msgstr ""
 
@@ -3985,7 +3970,7 @@ msgid "Pending Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
 msgid "Actions"
 msgstr ""
 
@@ -4113,7 +4098,7 @@ msgid "Part Category"
 msgstr ""
 
 #: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
 #: users/models.py:38
 msgid "Part Categories"
 msgstr ""
@@ -4124,7 +4109,7 @@ msgstr ""
 #: part/templates/part/category_sidebar.html:9
 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
 #: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
 #: templates/navbar.html:24 users/models.py:39
 msgid "Parts"
 msgstr ""
@@ -4202,7 +4187,7 @@ msgstr ""
 
 #: part/models.py:842 part/templates/part/part_base.html:266
 #: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
 msgid "IPN"
 msgstr ""
 
@@ -4316,7 +4301,7 @@ msgid "Test with this name already exists for this part"
 msgstr ""
 
 #: part/models.py:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
 msgid "Test Name"
 msgstr ""
 
@@ -4448,7 +4433,7 @@ msgid "BOM quantity for this BOM item"
 msgstr ""
 
 #: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
 #: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
@@ -4482,7 +4467,7 @@ msgid "BOM line checksum"
 msgstr ""
 
 #: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
 #: templates/js/translated/table_filters.js:68
 #: templates/js/translated/table_filters.js:88
 msgid "Inherited"
@@ -4493,7 +4478,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
 #: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
 msgid "Allow Variants"
 msgstr ""
 
@@ -4714,6 +4699,11 @@ msgstr ""
 msgid "New Part"
 msgstr ""
 
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr ""
+
 #: part/templates/part/category.html:172
 msgid "Set category"
 msgstr ""
@@ -4902,46 +4892,46 @@ msgstr ""
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
 msgid "Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
 msgid "Add Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
@@ -5084,8 +5074,8 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
 #: templates/js/translated/model_renderers.js:192
 #: templates/js/translated/part.js:581 templates/js/translated/part.js:658
 msgid "Inactive"
@@ -5101,20 +5091,22 @@ msgstr ""
 msgid "This part is a variant of %(link)s"
 msgstr ""
 
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr ""
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr ""
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
 msgid "Can Build"
 msgstr ""
 
@@ -5133,7 +5125,7 @@ msgid "Latest Serial Number"
 msgstr ""
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr ""
 
@@ -5172,7 +5164,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -5291,7 +5283,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
 msgid "Supplier Cost"
 msgstr ""
 
@@ -5530,7 +5522,7 @@ msgstr ""
 msgid "Barcode associated with Stock Item"
 msgstr ""
 
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
 msgid "Label printing failed"
 msgstr ""
 
@@ -5770,12 +5762,12 @@ msgid "Stock Item Test Report"
 msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr ""
 
@@ -5796,7 +5788,7 @@ msgstr ""
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
 msgid "Date"
 msgstr ""
 
@@ -5815,7 +5807,7 @@ msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2589
 msgid "Serial"
 msgstr ""
 
@@ -5832,7 +5824,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr ""
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr ""
 
@@ -5894,7 +5886,7 @@ msgstr ""
 msgid "Packaging this stock item is stored in"
 msgstr ""
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr ""
 
@@ -5934,8 +5926,8 @@ msgstr ""
 msgid "Destination Sales Order"
 msgstr ""
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1816
 msgid "Expiry Date"
 msgstr ""
 
@@ -6215,11 +6207,11 @@ msgstr ""
 msgid "Installed Stock Items"
 msgstr ""
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
 msgid "Install Stock Item"
 msgstr ""
 
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
 msgid "Add Test Result"
 msgstr ""
 
@@ -6311,110 +6303,114 @@ msgstr ""
 msgid "Delete stock item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:244
-msgid "This stock item has not passed all required tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:252
-msgid "This stock item is allocated to Sales Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr ""
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:284
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:292
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1693
+msgid "No location set"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1832
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr ""
 
@@ -6486,8 +6482,8 @@ msgstr ""
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:198 users/models.py:40
 msgid "Stock Locations"
 msgstr ""
 
@@ -6539,7 +6535,7 @@ msgstr ""
 msgid "Child Items"
 msgstr ""
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr ""
 
@@ -6564,55 +6560,55 @@ msgstr ""
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr ""
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr ""
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr ""
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr ""
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr ""
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr ""
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr ""
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr ""
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr ""
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr ""
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr ""
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr ""
 
@@ -7331,9 +7327,9 @@ msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr ""
@@ -7602,14 +7598,14 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
 #: templates/js/translated/part.js:530
 #: templates/js/translated/table_filters.js:178
 msgid "Available"
@@ -7644,67 +7640,67 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
-#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
 msgid "No Response"
 msgstr ""
 
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
 msgid "No response from the InvenTree server"
 msgstr ""
 
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
 msgid "Error 400: Bad request"
 msgstr ""
 
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
 msgid "API request returned error code 400"
 msgstr ""
 
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
 msgid "Error 401: Not Authenticated"
 msgstr ""
 
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
 msgid "Authentication credentials not supplied"
 msgstr ""
 
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
 msgid "Error 403: Permission Denied"
 msgstr ""
 
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
 msgid "You do not have the required permissions to access this function"
 msgstr ""
 
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
 msgid "Error 404: Resource Not Found"
 msgstr ""
 
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
 msgid "The requested resource could not be located on the server"
 msgstr ""
 
-#: templates/js/translated/api.js:217
+#: templates/js/translated/api.js:262
 msgid "Error 405: Method Not Allowed"
 msgstr ""
 
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
 msgid "HTTP method not allowed at URL"
 msgstr ""
 
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
 msgid "Error 408: Timeout"
 msgstr ""
 
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
 msgid "Connection timeout while requesting data from server"
 msgstr ""
 
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
 msgid "Unhandled Error Code"
 msgstr ""
 
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
 msgid "Error code"
 msgstr ""
 
@@ -7765,7 +7761,7 @@ msgid "Unknown response from server"
 msgstr ""
 
 #: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "Invalid server response"
 msgstr ""
 
@@ -7847,12 +7843,12 @@ msgid "Download BOM Template"
 msgstr ""
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
 msgid "Format"
 msgstr ""
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr ""
 
@@ -7932,84 +7928,84 @@ msgstr ""
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
 msgid "Load BOM for subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
 msgid "No Stock Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
 msgid "Includes variant and substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
 #: templates/js/translated/part.js:690
 msgid "Includes variant stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
 msgid "Includes substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -8131,262 +8127,270 @@ msgstr ""
 msgid "Location not specified"
 msgstr ""
 
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
 msgid "No active build outputs found"
 msgstr ""
 
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
 msgid "Allocated Stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
 msgid "No tracked BOM items for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
 msgid "Completed Tests"
 msgstr ""
 
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
 msgid "No required tests for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
 msgid "Edit stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
 msgid "Delete stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
 msgid "Edit Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
 msgid "Remove Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
 msgid "Substitute parts available"
 msgstr ""
 
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
 msgid "Quantity Per"
 msgstr ""
 
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
 msgid "Insufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
 msgid "Sufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
 msgid "Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
 msgid "Build stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
 msgid "Order stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
 msgid "Allocate stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr ""
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
 msgid "You must select at least one part to allocate"
 msgstr ""
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
 msgid "All Parts Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
 msgid "All selected parts have been fully allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
 msgid "Select source location (leave blank to take from all locations)"
 msgstr ""
 
-#: templates/js/translated/build.js:2117
+#: templates/js/translated/build.js:2100
 msgid "Allocate Stock Items to Build Order"
 msgstr ""
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
 msgid "No matching stock locations"
 msgstr ""
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
 msgid "No matching stock items"
 msgstr ""
 
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
 msgid "Automatic Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
 msgstr ""
 
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
 msgid "If a location is specifed, stock will only be allocated from that location"
 msgstr ""
 
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
 msgstr ""
 
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
 msgstr ""
 
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
 msgid "Allocate Stock Items"
 msgstr ""
 
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
 msgid "Select"
 msgstr ""
 
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
 msgid "Build order is overdue"
 msgstr ""
 
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
 msgid "Progress"
 msgstr ""
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
 msgid "No information"
 msgstr ""
 
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
 msgid "No parts allocated for"
 msgstr ""
 
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
 msgid "Add Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
 msgid "Edit Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:342
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr ""
+
+#: templates/js/translated/company.js:595
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
 #: templates/js/translated/part.js:650
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
 #: templates/js/translated/part.js:654
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
 msgid "No supplier parts found"
 msgstr ""
 
@@ -8424,61 +8428,61 @@ msgstr ""
 msgid "Create filter"
 msgstr ""
 
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
 msgid "Action Prohibited"
 msgstr ""
 
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
 msgid "Create operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
 msgid "Update operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
 msgid "Delete operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
 msgid "View operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
 msgid "Keep this form open"
 msgstr ""
 
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
 msgid "Enter a valid number"
 msgstr ""
 
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
 #: templates/modals.html:43
 msgid "Form errors exist"
 msgstr ""
 
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
 msgid "No results found"
 msgstr ""
 
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
 msgid "Searching"
 msgstr ""
 
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
 msgid "Clear input"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "File Column"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "Field Name"
 msgstr ""
 
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
 msgid "Select Columns"
 msgstr ""
 
@@ -8552,62 +8556,62 @@ msgstr ""
 msgid "Select Label Template"
 msgstr ""
 
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
 msgid "Cancel"
 msgstr ""
 
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
 #: templates/modals.html:28 templates/modals.html:51
 msgid "Submit"
 msgstr ""
 
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
 msgid "Form Title"
 msgstr ""
 
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
 msgid "Waiting for server..."
 msgstr ""
 
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
 msgid "Show Error Information"
 msgstr ""
 
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
 msgid "Accept"
 msgstr ""
 
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
 msgid "Loading Data"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Invalid response from server"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Form data missing from server response"
 msgstr ""
 
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
 msgid "Error posting form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "JSON response missing form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
 msgid "Error 400: Bad Request"
 msgstr ""
 
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
 msgid "Server returned error code 400"
 msgstr ""
 
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
 msgid "Error requesting form data"
 msgstr ""
 
@@ -8665,377 +8669,381 @@ msgstr ""
 msgid "Notifications will load here"
 msgstr ""
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
 msgstr ""
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
 msgstr ""
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr ""
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr ""
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr ""
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr ""
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr ""
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr ""
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr ""
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr ""
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr ""
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr ""
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr ""
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
 msgid "Stock Status"
 msgstr ""
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr ""
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr ""
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr ""
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
 msgid "Order is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
 msgid "Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
 msgid "Duplicate Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
 msgid "Edit Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
 msgid "Delete Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1856
 msgid "No line items found"
 msgstr ""
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
 msgid "Total"
 msgstr ""
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
 msgid "Total Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
 msgid "Duplicate line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
 msgid "Edit line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
 msgid "Delete line item"
 msgstr ""
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
 msgid "Duplicate line"
 msgstr ""
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
 msgid "Edit line"
 msgstr ""
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
 msgid "Delete line"
 msgstr ""
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
 msgid "Duplicate Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
 msgid "Edit Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
 msgid "Delete Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2279
 msgid "No matching line"
 msgstr ""
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2392
 msgid "No sales orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2462
 msgid "Invalid Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2549
 msgid "Edit shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2552
 msgid "Complete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2557
 msgid "Delete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2577
 msgid "Edit Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2594
 msgid "Delete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2628
 msgid "No matching shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2638
 msgid "Shipment Reference"
 msgstr ""
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2662
 msgid "Not shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2668
 msgid "Tracking"
 msgstr ""
 
-#: templates/js/translated/order.js:2603
+#: templates/js/translated/order.js:2672
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:2841
 msgid "Add Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2892
 msgid "Confirm stock allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2893
 msgid "Allocate Stock Items to Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:3101
 msgid "No sales order allocations found"
 msgstr ""
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:3182
 msgid "Edit Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:3199
 msgid "Confirm Delete Operation"
 msgstr ""
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:3200
 msgid "Delete Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
 msgid "Shipped to customer"
 msgstr ""
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
 msgid "Stock location not specified"
 msgstr ""
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3623
 msgid "Allocate serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3629
 msgid "Purchase stock"
 msgstr ""
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
 msgid "Calculate price"
 msgstr ""
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3648
 msgid "Cannot be deleted as items have been shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3651
 msgid "Cannot be deleted as items have been allocated"
 msgstr ""
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3733
 msgid "Allocate Serial Numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3842
 msgid "Update Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3856
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:4092
 msgid "No matching lines"
 msgstr ""
 
@@ -9217,7 +9225,7 @@ msgid "No category"
 msgstr ""
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2238
 msgid "Display as list"
 msgstr ""
 
@@ -9225,7 +9233,7 @@ msgstr ""
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
 msgid "Display as tree"
 msgstr ""
 
@@ -9233,7 +9241,7 @@ msgstr ""
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
 msgid "Path"
 msgstr ""
 
@@ -9241,12 +9249,12 @@ msgstr ""
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
 msgid "Delete test result"
 msgstr ""
 
@@ -9367,11 +9375,11 @@ msgstr ""
 msgid "Sales Order(s) must be selected before printing report"
 msgstr ""
 
-#: templates/js/translated/search.js:307
+#: templates/js/translated/search.js:352
 msgid "Minimize results"
 msgstr ""
 
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:355
 msgid "Remove results"
 msgstr ""
 
@@ -9531,204 +9539,204 @@ msgstr ""
 msgid "Confirm stock adjustment"
 msgstr ""
 
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
 msgid "PASS"
 msgstr ""
 
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
 msgid "FAIL"
 msgstr ""
 
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
 msgid "NO RESULT"
 msgstr ""
 
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
 msgid "Pass test"
 msgstr ""
 
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
 msgid "Add test result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
 msgid "No test results found"
 msgstr ""
 
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
 msgid "Test Date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
 msgid "Edit Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
 msgid "Delete Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
 msgid "In production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
 msgid "Installed in Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
 msgid "Assigned to Sales Order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
 msgid "No stock location set"
 msgstr ""
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1712
 msgid "Stock item is in production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1717
 msgid "Stock item assigned to sales order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1720
 msgid "Stock item assigned to customer"
 msgstr ""
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr ""
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr ""
-
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
 msgid "Serialized stock item has been allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
 msgid "Stock item has been fully allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
 msgid "Stock item has been partially allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1730
 msgid "Stock item has been installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1734
+msgid "Stock item has expired"
+msgstr ""
+
+#: templates/js/translated/stock.js:1736
+msgid "Stock item will expire soon"
+msgstr ""
+
+#: templates/js/translated/stock.js:1743
 msgid "Stock item has been rejected"
 msgstr ""
 
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1745
 msgid "Stock item is lost"
 msgstr ""
 
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1747
 msgid "Stock item is destroyed"
 msgstr ""
 
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1751
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr ""
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1802
 msgid "Stocktake"
 msgstr ""
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1884
 msgid "Supplier part not specified"
 msgstr ""
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1922
 msgid "No stock items matching query"
 msgstr ""
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2095
 msgid "Set Stock Status"
 msgstr ""
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2109
 msgid "Select Status Code"
 msgstr ""
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2110
 msgid "Status code must be selected"
 msgstr ""
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2365
 msgid "Details"
 msgstr ""
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2381
 msgid "Part information unavailable"
 msgstr ""
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2403
 msgid "Location no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2422
 msgid "Purchase order no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
 msgid "Customer no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2459
 msgid "Stock item no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2482
 msgid "Added"
 msgstr ""
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2490
 msgid "Removed"
 msgstr ""
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2566
 msgid "No installed items"
 msgstr ""
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
 msgid "Uninstall Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2666
 msgid "Select stock item to uninstall"
 msgstr ""
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2687
 msgid "Install another stock item into this item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2688
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr ""
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2690
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2691
 msgid "The Stock Item is currently available in stock"
 msgstr ""
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2692
 msgid "The Stock Item is not already installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2693
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr ""
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2706
 msgid "Select part to install"
 msgstr ""
 
@@ -9960,69 +9968,81 @@ msgstr ""
 msgid "Purchasable"
 msgstr ""
 
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr ""
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr ""
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
 msgid "Export Table Data"
 msgstr ""
 
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
 msgid "Select File Format"
 msgstr ""
 
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
 msgid "Loading data"
 msgstr ""
 
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
 msgid "rows per page"
 msgstr ""
 
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
 msgid "Showing all rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "Showing"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "to"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "of"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
 #: templates/search.html:8 templates/search_form.html:6
 #: templates/search_form.html:7
 msgid "Search"
 msgstr ""
 
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
 msgid "No matching results"
 msgstr ""
 
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
 msgid "Hide/Show pagination"
 msgstr ""
 
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
 msgid "Refresh"
 msgstr ""
 
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
 msgid "Toggle"
 msgstr ""
 
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
 msgid "Columns"
 msgstr ""
 
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
 msgid "All"
 msgstr ""
 
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index 849e55727e..2d3c0cfdcb 100644
--- a/InvenTree/locale/fr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fr/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
-"PO-Revision-Date: 2022-05-24 01:42\n"
+"POT-Creation-Date: 2022-05-28 23:41+0000\n"
+"PO-Revision-Date: 2022-05-29 01:47\n"
 "Last-Translator: \n"
 "Language-Team: French\n"
 "Language: fr_FR\n"
@@ -21,7 +21,7 @@ msgstr ""
 msgid "API endpoint not found"
 msgstr "Point de terminaison de l'API introuvable"
 
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
 msgid "Error details can be found in the admin panel"
 msgstr "Les détails de l'erreur peuvent être trouvées dans le panneau d'administration"
 
@@ -30,7 +30,7 @@ msgid "Enter date"
 msgstr "Entrer la date"
 
 #: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
 msgid "Confirm"
 msgstr "Confirmer"
 
@@ -79,7 +79,7 @@ msgstr "Vous devez taper le même e-mail à chaque fois."
 msgid "Duplicate serial: {sn}"
 msgstr "Dupliquer le numéro : {sn}"
 
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
 msgid "Invalid quantity provided"
 msgstr "Quantité fournie invalide"
 
@@ -134,10 +134,12 @@ msgid "Select file to attach"
 msgstr "Sélectionnez un fichier à joindre"
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:139 order/models.py:1273
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr "Lien"
 
@@ -159,7 +161,7 @@ msgstr "Commentaire du fichier"
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2513
 msgid "User"
 msgstr "Utilisateur"
 
@@ -205,9 +207,10 @@ msgstr "Choix invalide"
 #: templates/InvenTree/settings/plugin.html:132
 #: templates/InvenTree/settings/plugin_settings.html:23
 #: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2283
 msgid "Name"
 msgstr "Nom"
 
@@ -216,22 +219,22 @@ msgstr "Nom"
 #: company/models.py:575 company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
 #: part/templates/part/part_base.html:167
 #: part/templates/part/set_category.html:14 report/models.py:182
 #: report/models.py:547 report/models.py:586
 #: report/templates/report/inventree_build_order_base.html:118
 #: stock/templates/stock/location.html:103
 #: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
 msgid "Description"
 msgstr "Description"
 
@@ -406,7 +409,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:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
 msgid "Pending"
 msgstr "En attente"
 
@@ -414,141 +417,145 @@ msgstr "En attente"
 msgid "Placed"
 msgstr "Placé"
 
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
 #: order/templates/order/order_base.html:134
 #: order/templates/order/sales_order_base.html:133
 msgid "Complete"
 msgstr "Terminé"
 
 #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
 msgid "Cancelled"
 msgstr "Annulé"
 
 #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
 msgid "Lost"
 msgstr "Perdu"
 
 #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
 msgid "Returned"
 msgstr "Retourné"
 
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
 msgid "Shipped"
 msgstr "Expédié"
 
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
 msgid "OK"
 msgstr "OK"
 
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
 msgid "Attention needed"
 msgstr "Attention requise"
 
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
 msgid "Damaged"
 msgstr "Endommagé"
 
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
 msgid "Destroyed"
 msgstr "Détruit"
 
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
 msgid "Rejected"
 msgstr "Rejeté"
 
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
 msgid "Legacy stock tracking entry"
 msgstr "Ancienne entrée de suivi de stock"
 
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
 msgid "Stock item created"
 msgstr "Article en stock créé"
 
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
 msgid "Edited stock item"
 msgstr "Article de stock modifié"
 
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
 msgid "Assigned serial number"
 msgstr "Numéro de série attribué"
 
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
 msgid "Stock counted"
 msgstr "Stock comptabilisé"
 
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
 msgid "Stock manually added"
 msgstr "Stock ajouté manuellement"
 
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
 msgid "Stock manually removed"
 msgstr "Stock supprimé manuellement"
 
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
 msgid "Location changed"
 msgstr "Emplacement modifié"
 
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
 msgid "Installed into assembly"
 msgstr "Installé dans l'assemblage"
 
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
 msgid "Removed from assembly"
 msgstr "Retiré de l'assemblage"
 
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
 msgid "Installed component item"
 msgstr "Composant installé"
 
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
 msgid "Removed component item"
 msgstr "Composant retiré"
 
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
 msgid "Split from parent item"
 msgstr "Séparer de l'élément parent"
 
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
 msgid "Split child item"
 msgstr "Fractionner l'élément enfant"
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
 msgid "Merged stock items"
 msgstr "Articles de stock fusionnés"
 
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
 msgid "Converted to variant"
 msgstr "Converti en variante"
 
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
 msgid "Sent to customer"
 msgstr "Envoyé au client"
 
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
 msgid "Returned from customer"
 msgstr "Retourné par le client"
 
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
 msgid "Build order output created"
 msgstr "La sortie de l'ordre de construction a été créée"
 
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
 msgid "Build order output completed"
 msgstr "Sortie de l'ordre de construction terminée"
 
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
 msgid "Consumed by build order"
 msgstr "Consommé par ordre de construction"
 
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
 msgid "Received against purchase order"
 msgstr "Reçu contre bon de commande"
 
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
 msgid "Production"
 msgstr "Fabrication"
 
@@ -637,15 +644,15 @@ msgstr "Ordres de Fabrication"
 msgid "Build Order Reference"
 msgstr "Référence de l' Ordre de Fabrication"
 
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
 #: part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
 msgid "Reference"
 msgstr "Référence"
 
@@ -664,7 +671,7 @@ msgstr "BuildOrder associé a cette fabrication"
 
 #: build/models.py:225 build/templates/build/build_base.html:77
 #: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
 #: part/models.py:2303 part/models.py:2319 part/models.py:2338
 #: part/models.py:2355 part/models.py:2457 part/models.py:2579
 #: part/models.py:2669 part/models.py:2760 part/models.py:3050
@@ -679,19 +686,21 @@ msgstr "BuildOrder associé a cette fabrication"
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
 #: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
 msgid "Part"
 msgstr "Pièce"
 
@@ -708,7 +717,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr "Commande de vente à laquelle cette construction est allouée"
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
 msgid "Source Location"
 msgstr "Emplacement d'origine"
 
@@ -749,7 +758,7 @@ msgid "Build status code"
 msgstr "Code de statut de construction"
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr "Code de lot"
 
@@ -757,12 +766,12 @@ msgstr "Code de lot"
 msgid "Batch code for this build output"
 msgstr "Code de lot pour ce build output"
 
-#: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
 msgid "Creation Date"
 msgstr "Date de création"
 
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
 msgid "Target completion date"
 msgstr "Date d'achèvement cible"
 
@@ -770,8 +779,8 @@ msgstr "Date d'achèvement cible"
 msgid "Target date for build completion. Build will be overdue after this date."
 msgstr "Date cible pour l'achèvement de la construction. La construction sera en retard après cette date."
 
-#: build/models.py:300 order/models.py:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
 msgid "Completion Date"
 msgstr "Date d'achèvement"
 
@@ -779,7 +788,7 @@ msgstr "Date d'achèvement"
 msgid "completed by"
 msgstr "achevé par"
 
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
 msgid "Issued by"
 msgstr "Émis par"
 
@@ -788,11 +797,11 @@ msgid "User who issued this build order"
 msgstr "Utilisateur ayant émis cette commande de construction"
 
 #: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
 msgid "Responsible"
 msgstr "Responsable"
 
@@ -804,14 +813,14 @@ msgstr "Utilisateur responsable de cette commande de construction"
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr "Lien Externe"
 
 #: build/models.py:334 build/serializers.py:390
 #: build/templates/build/sidebar.html:21 company/models.py:134
 #: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
 #: order/templates/order/po_sidebar.html:11
 #: order/templates/order/so_sidebar.html:17 part/models.py:983
 #: part/templates/part/part_sidebar.html:59
@@ -820,11 +829,11 @@ msgstr "Lien Externe"
 #: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
 msgid "Notes"
 msgstr "Notes"
 
@@ -857,7 +866,7 @@ msgstr "La quantité allouée ({q}) ne doit pas excéder la quantité disponible
 msgid "Stock item is over-allocated"
 msgstr "L'article de stock est suralloué"
 
-#: build/models.py:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1413
 msgid "Allocation quantity must be greater than zero"
 msgstr "La quantité allouée doit être supérieure à zéro"
 
@@ -869,8 +878,8 @@ msgstr "La quantité doit être de 1 pour stock sérialisé"
 msgid "Selected stock item not found in BOM"
 msgstr "L'article du stock sélectionné n'a pas été trouvé dans la BOM"
 
-#: build/models.py:1375 stock/templates/stock/item_base.html:335
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
 #: templates/navbar.html:38
 msgid "Build"
 msgstr "Assemblage"
@@ -879,18 +888,18 @@ msgstr "Assemblage"
 msgid "Build to allocate parts"
 msgstr "Construction à laquelle allouer des pièces"
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2449
 msgid "Stock Item"
 msgstr "Article en stock"
 
@@ -902,10 +911,10 @@ msgstr "Stock d'origine de l'article"
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_build_order_base.html:114
@@ -913,25 +922,24 @@ msgstr "Stock d'origine de l'article"
 #: 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
 msgid "Quantity"
 msgstr "Quantité"
 
@@ -948,7 +956,7 @@ msgid "Destination stock item"
 msgstr "Stock de destination de l'article"
 
 #: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
 msgid "Build Output"
 msgstr "Sortie d'assemblage"
 
@@ -972,7 +980,7 @@ msgstr "Cet ordre de production n'est pas complètement attribué"
 msgid "Enter quantity for build output"
 msgstr "Entrer la quantité désiré pour la fabrication"
 
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
 #: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
 #: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
 #: stock/serializers.py:294
@@ -987,8 +995,8 @@ msgstr "Quantité entière requise pour les pièces à suivre"
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr "Quantité entière requise, car la facture de matériaux contient des pièces à puce"
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr "Numéros de série"
@@ -1015,15 +1023,15 @@ msgstr "Une liste d'ordre de production doit être fourni"
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
 msgid "Location"
 msgstr "Emplacement"
 
@@ -1032,12 +1040,12 @@ msgid "Location for completed build outputs"
 msgstr "Emplacement des ordres de production achevés"
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: build/templates/build/detail.html:62 order/models.py:663
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
 msgid "Status"
 msgstr "État"
 
@@ -1118,7 +1126,7 @@ msgstr ""
 msgid "Item must be in stock"
 msgstr "L'article doit être en stock"
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr "Quantité disponible ({q}) dépassée"
@@ -1135,7 +1143,7 @@ msgstr ""
 msgid "This stock item has already been allocated to this build output"
 msgstr ""
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr ""
 
@@ -1233,13 +1241,13 @@ msgid "Stock has not been fully allocated to this Build Order"
 msgstr "Le stock n'a pas été entièrement alloué à cet ordre de construction"
 
 #: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr "Date Cible"
 
@@ -1266,14 +1274,14 @@ msgid "Completed"
 msgstr "Terminé"
 
 #: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2436
 msgid "Sales Order"
 msgstr "Commandes"
 
@@ -1308,8 +1316,8 @@ msgstr "Stock d'origine"
 msgid "Stock can be taken from any available location."
 msgstr "Le stock peut être pris à partir de n'importe quel endroit disponible."
 
-#: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
 msgid "Destination"
 msgstr "Destination"
 
@@ -1322,11 +1330,11 @@ msgid "Allocated Parts"
 msgstr "Pièces allouées"
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
-#: templates/js/translated/build.js:1184
+#: stock/templates/stock/item_base.html:170
+#: templates/js/translated/build.js:1179
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1335,7 +1343,7 @@ msgstr "Lot"
 #: build/templates/build/detail.html:126
 #: order/templates/order/order_base.html:149
 #: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
 msgid "Created"
 msgstr "Créé le"
 
@@ -1355,7 +1363,7 @@ msgstr ""
 msgid "Allocate Stock to Build"
 msgstr ""
 
-#: build/templates/build/detail.html:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
 msgid "Unallocate stock"
 msgstr "Désallouer le stock"
 
@@ -1385,8 +1393,8 @@ msgstr "Commander les pièces requises"
 
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: company/templates/company/detail.html:85
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr "Commander des pièces"
 
@@ -1461,8 +1469,8 @@ msgid "Completed Build Outputs"
 msgstr ""
 
 #: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
 #: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:82
 #: order/templates/order/sales_order_detail.html:129
@@ -1476,11 +1484,11 @@ msgstr "Pieces jointes"
 msgid "Build Notes"
 msgstr "Notes de construction"
 
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
 msgid "Allocation Complete"
 msgstr "Allocation terminée"
 
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
@@ -1492,18 +1500,6 @@ msgstr "Nouvel ordre de construction"
 msgid "Print Build Orders"
 msgstr "Imprimer les commandes de construction"
 
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr "Affichage du calendrier"
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr "Affichage en liste"
-
 #: build/templates/build/sidebar.html:5
 msgid "Build Order Details"
 msgstr ""
@@ -1727,7 +1723,7 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr "Les pièces sont des templates par défaut"
 
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
 #: templates/js/translated/table_filters.js:168
 #: templates/js/translated/table_filters.js:460
 msgid "Assembly"
@@ -2413,7 +2409,7 @@ msgid "Price break quantity"
 msgstr ""
 
 #: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: company/templates/company/supplier_part.html:263 order/models.py:975
 #: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
 msgid "Price"
 msgstr "Prix"
@@ -2556,7 +2552,7 @@ msgstr ""
 
 #: company/models.py:104 company/templates/company/company_base.html:100
 #: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
 msgid "Website"
 msgstr ""
 
@@ -2651,10 +2647,11 @@ msgstr ""
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: stock/templates/stock/item_base.html:212
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
 #: templates/js/translated/table_filters.js:411
 msgid "Manufacturer"
 msgstr "Fabricant"
@@ -2665,8 +2662,10 @@ msgstr "Sélectionner un fabricant"
 
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr ""
@@ -2686,7 +2685,7 @@ msgstr ""
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr ""
 
@@ -2696,8 +2695,9 @@ msgstr ""
 
 #: company/models.py:427
 #: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
 msgid "Value"
 msgstr "Valeur"
 
@@ -2708,7 +2708,7 @@ msgstr ""
 #: company/models.py:434 part/models.py:940 part/models.py:2549
 #: part/templates/part/part_base.html:280
 #: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
 msgid "Units"
 msgstr ""
 
@@ -2721,11 +2721,12 @@ msgid "Linked manufacturer part must reference the same base part"
 msgstr ""
 
 #: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: stock/templates/stock/item_base.html:229
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2736,8 +2737,9 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
 msgid "SKU"
 msgstr ""
 
@@ -2773,8 +2775,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr ""
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
 msgid "Packaging"
 msgstr ""
 
@@ -2804,12 +2806,12 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
 msgid "Company"
 msgstr ""
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr "Créer une commande d'achat"
 
@@ -2822,7 +2824,7 @@ msgid "Edit company information"
 msgstr ""
 
 #: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
 msgid "Edit Company"
 msgstr ""
 
@@ -2845,12 +2847,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:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr ""
@@ -2869,7 +2871,7 @@ msgid "Upload Image"
 msgstr ""
 
 #: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
+#: company/templates/company/manufacturer_part_sidebar.html:7
 #: templates/InvenTree/search.html:118
 msgid "Supplier Parts"
 msgstr ""
@@ -2884,28 +2886,19 @@ msgstr ""
 msgid "New Supplier Part"
 msgstr ""
 
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr ""
-
 #: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
 #: part/templates/part/category.html:176
 msgid "Order parts"
 msgstr "Commander des composants"
 
 #: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
 msgid "Delete parts"
 msgstr ""
 
 #: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
 msgid "Delete Parts"
 msgstr ""
 
@@ -2917,88 +2910,76 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
 msgid "New Manufacturer Part"
 msgstr ""
 
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
 msgid "Supplier Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
 #: company/templates/company/sidebar.html:12
 #: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
 #: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:235 templates/navbar.html:50
 #: users/models.py:43
 msgid "Purchase Orders"
 msgstr "Commandes d'achat"
 
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
 #: order/templates/order/purchase_orders.html:17
 msgid "Create new purchase order"
 msgstr "Créer une commande d'achat"
 
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr "Nouvelle commande achat"
 
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
 #: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
 #: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
 #: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:259 templates/navbar.html:61
 #: users/models.py:44
 msgid "Sales Orders"
 msgstr "Ventes"
 
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
 #: order/templates/order/sales_orders.html:20
 msgid "Create new sales order"
 msgstr ""
 
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
 #: order/templates/order/sales_orders.html:21
 msgid "New Sales Order"
 msgstr "Nouvelle commande de vente"
 
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
 msgid "Assigned Stock"
 msgstr "Stock affecté"
 
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
 msgid "Company Notes"
 msgstr ""
 
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr ""
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr ""
-
 #: company/templates/company/index.html:8
 msgid "Supplier List"
 msgstr "Liste des Fournisseurs"
 
 #: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
 #: templates/navbar.html:49
 msgid "Manufacturers"
 msgstr "Fabricants"
@@ -3011,12 +2992,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -3032,55 +3013,46 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:119
 #: company/templates/company/supplier_part.html:15 company/views.py:41
 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
 msgid "Suppliers"
 msgstr "Fournisseurs"
 
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
 #: part/templates/part/detail.html:363
 msgid "Delete supplier parts"
 msgstr "Supprimer les pièces du fournisseur"
 
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
 msgid "Delete"
 msgstr "Supprimer"
 
-#: company/templates/company/manufacturer_part.html:164
+#: company/templates/company/manufacturer_part.html:166
 #: company/templates/company/manufacturer_part_sidebar.html:5
 #: part/templates/part/category_sidebar.html:19
 #: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8
 msgid "Parameters"
 msgstr "Paramètres"
 
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
 #: part/templates/part/detail.html:184
 #: templates/InvenTree/settings/category.html:12
 #: templates/InvenTree/settings/part.html:66
 msgid "New Parameter"
 msgstr "Nouveau paramètre"
 
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
 msgid "Delete parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
 msgid "Add Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr ""
-
 #: company/templates/company/sidebar.html:6
 msgid "Manufactured Parts"
 msgstr ""
@@ -3099,19 +3071,19 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
 msgid "Delete supplier part"
 msgstr ""
 
@@ -3186,11 +3158,11 @@ msgstr ""
 #: part/templates/part/part_sidebar.html:14
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
 #: templates/InvenTree/settings/sidebar.html:43
 #: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
 #: templates/navbar.html:31
 msgid "Stock"
 msgstr ""
@@ -3216,8 +3188,8 @@ msgstr "Tarif"
 #: stock/templates/stock/location.html:161
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
+#: templates/js/translated/stock.js:2307 users/models.py:41
 msgid "Stock Items"
 msgstr "Éléments en stock"
 
@@ -3229,7 +3201,7 @@ msgstr "Nouveau Fournisseur"
 msgid "New Manufacturer"
 msgstr "Nouveau Fabricant"
 
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
 #: templates/navbar.html:60
 msgid "Customers"
 msgstr "Clients"
@@ -3238,7 +3210,7 @@ msgstr "Clients"
 msgid "New Customer"
 msgstr "Nouveaux Clients"
 
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:212
 msgid "Companies"
 msgstr "Entreprises"
 
@@ -3328,305 +3300,313 @@ msgstr ""
 msgid "Part query filters (comma-separated value of key=value pairs)"
 msgstr ""
 
-#: order/models.py:130
+#: order/models.py:137
 msgid "Order description"
 msgstr "Description de la commande"
 
-#: order/models.py:132
+#: order/models.py:139 order/models.py:1274
 msgid "Link to external page"
 msgstr "Lien vers une page externe"
 
-#: order/models.py:140
+#: order/models.py:147
 msgid "Created By"
 msgstr "Créé par"
 
-#: order/models.py:147
+#: order/models.py:154
 msgid "User or group responsible for this order"
 msgstr ""
 
-#: order/models.py:152
+#: order/models.py:159
 msgid "Order notes"
 msgstr "Notes de commande"
 
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
 msgid "Order reference"
 msgstr ""
 
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
 msgid "Purchase order status"
 msgstr ""
 
-#: order/models.py:253
+#: order/models.py:311
 msgid "Company from which the items are being ordered"
 msgstr ""
 
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
 msgid "Supplier Reference"
 msgstr ""
 
-#: order/models.py:256
+#: order/models.py:314
 msgid "Supplier order reference code"
 msgstr ""
 
-#: order/models.py:263
+#: order/models.py:321
 msgid "received by"
 msgstr ""
 
-#: order/models.py:268
+#: order/models.py:326
 msgid "Issue Date"
 msgstr ""
 
-#: order/models.py:269
+#: order/models.py:327
 msgid "Date order was issued"
 msgstr ""
 
-#: order/models.py:274
+#: order/models.py:332
 msgid "Target Delivery Date"
 msgstr ""
 
-#: order/models.py:275
+#: order/models.py:333
 msgid "Expected date for order delivery. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:281
+#: order/models.py:339
 msgid "Date order was completed"
 msgstr ""
 
-#: order/models.py:310
+#: order/models.py:368
 msgid "Part supplier must match PO supplier"
 msgstr ""
 
-#: order/models.py:456
+#: order/models.py:514
 msgid "Quantity must be a positive number"
 msgstr ""
 
-#: order/models.py:601
+#: order/models.py:659
 msgid "Company to which the items are being sold"
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer Reference "
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer order reference code"
 msgstr ""
 
-#: order/models.py:612
+#: order/models.py:670
 msgid "Target date for order completion. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
 msgid "Shipment Date"
 msgstr "Nom de l’expédition"
 
-#: order/models.py:622
+#: order/models.py:680
 msgid "shipped by"
 msgstr "expédié par"
 
-#: order/models.py:688
+#: order/models.py:746
 msgid "Order cannot be completed as no parts have been assigned"
 msgstr "La commande ne peut pas être terminée car aucune pièce n'a été assignée"
 
-#: order/models.py:692
+#: order/models.py:750
 msgid "Only a pending order can be marked as complete"
 msgstr "Seule une commande en attente peut être marquée comme terminée"
 
-#: order/models.py:695
+#: order/models.py:753
 msgid "Order cannot be completed as there are incomplete shipments"
 msgstr "La commande ne peut pas être terminée car il y a des envois incomplets"
 
-#: order/models.py:698
+#: order/models.py:756
 msgid "Order cannot be completed as there are incomplete line items"
 msgstr ""
 
-#: order/models.py:878
+#: order/models.py:936
 msgid "Item quantity"
 msgstr "Nombre d'élement"
 
-#: order/models.py:884
+#: order/models.py:942
 msgid "Line item reference"
 msgstr ""
 
-#: order/models.py:886
+#: order/models.py:944
 msgid "Line item notes"
 msgstr ""
 
-#: order/models.py:891
+#: order/models.py:949
 msgid "Target shipping date for this line item"
 msgstr ""
 
-#: order/models.py:909
+#: order/models.py:967
 msgid "Context"
 msgstr "Contexte"
 
-#: order/models.py:910
+#: order/models.py:968
 msgid "Additional context for this line"
 msgstr ""
 
-#: order/models.py:918
+#: order/models.py:976
 msgid "Unit price"
 msgstr ""
 
-#: order/models.py:951
+#: order/models.py:1009
 msgid "Supplier part must match supplier"
 msgstr ""
 
-#: order/models.py:958
+#: order/models.py:1016
 msgid "deleted"
 msgstr ""
 
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
 msgid "Order"
 msgstr "Commande"
 
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
 msgid "Purchase Order"
 msgstr "Commande d’achat"
 
-#: order/models.py:984
+#: order/models.py:1042
 msgid "Supplier part"
 msgstr "Pièce fournisseur"
 
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
 msgstr "Reçu"
 
-#: order/models.py:992
+#: order/models.py:1050
 msgid "Number of items received"
 msgstr "Nombre d'éléments reçus"
 
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1900
 msgid "Purchase Price"
 msgstr "Prix d'achat"
 
-#: order/models.py:1000
+#: order/models.py:1058
 msgid "Unit purchase price"
 msgstr ""
 
-#: order/models.py:1008
+#: order/models.py:1066
 msgid "Where does the Purchaser want this item to be stored?"
 msgstr ""
 
-#: order/models.py:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
 #: part/templates/part/prices.html:119 part/templates/part/prices.html:288
 msgid "Sale Price"
 msgstr "Prix de vente"
 
-#: order/models.py:1079
+#: order/models.py:1137
 msgid "Unit sale price"
 msgstr ""
 
-#: order/models.py:1084
+#: order/models.py:1142
 msgid "Shipped quantity"
 msgstr ""
 
-#: order/models.py:1171
+#: order/models.py:1229
 msgid "Date of shipment"
 msgstr ""
 
-#: order/models.py:1178
+#: order/models.py:1236
 msgid "Checked By"
 msgstr ""
 
-#: order/models.py:1179
+#: order/models.py:1237
 msgid "User who checked this shipment"
 msgstr ""
 
-#: order/models.py:1187
+#: order/models.py:1245
 msgid "Shipment number"
 msgstr ""
 
-#: order/models.py:1194
+#: order/models.py:1252
 msgid "Shipment notes"
 msgstr ""
 
-#: order/models.py:1201
+#: order/models.py:1259
 msgid "Tracking Number"
 msgstr ""
 
-#: order/models.py:1202
+#: order/models.py:1260
 msgid "Shipment tracking information"
 msgstr ""
 
-#: order/models.py:1213
+#: order/models.py:1267
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1268
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1285
 msgid "Shipment has already been sent"
 msgstr ""
 
-#: order/models.py:1216
+#: order/models.py:1288
 msgid "Shipment has no allocated stock items"
 msgstr ""
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1395 order/models.py:1397
 msgid "Stock item has not been assigned"
 msgstr ""
 
-#: order/models.py:1317
+#: order/models.py:1401
 msgid "Cannot allocate stock item to a line with a different part"
 msgstr ""
 
-#: order/models.py:1319
+#: order/models.py:1403
 msgid "Cannot allocate stock to a line without a part"
 msgstr ""
 
-#: order/models.py:1322
+#: order/models.py:1406
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr ""
 
-#: order/models.py:1326
+#: order/models.py:1410
 msgid "StockItem is over-allocated"
 msgstr ""
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1416 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr ""
 
-#: order/models.py:1335
+#: order/models.py:1419
 msgid "Sales order does not match shipment"
 msgstr ""
 
-#: order/models.py:1336
+#: order/models.py:1420
 msgid "Shipment does not match sales order"
 msgstr ""
 
-#: order/models.py:1344
+#: order/models.py:1428
 msgid "Line"
 msgstr "Ligne"
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr "Envoi"
 
-#: order/models.py:1353
+#: order/models.py:1437
 msgid "Sales order shipment reference"
 msgstr ""
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr "Article"
 
-#: order/models.py:1366
+#: order/models.py:1450
 msgid "Select stock item to allocate"
 msgstr ""
 
-#: order/models.py:1369
+#: order/models.py:1453
 msgid "Enter stock allocation quantity"
 msgstr ""
 
@@ -3662,7 +3642,7 @@ msgstr ""
 msgid "Purchase order must match supplier"
 msgstr ""
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr ""
 
@@ -3674,11 +3654,11 @@ msgstr ""
 msgid "Select destination location for received items"
 msgstr ""
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr ""
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr "Entrez les numéros de série pour les articles de stock entrants"
 
@@ -3714,35 +3694,35 @@ msgstr ""
 msgid "Sale price currency"
 msgstr ""
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr ""
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr ""
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr "Entrez les numéros de série à allouer"
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr ""
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr "Aucune correspondance trouvée pour les numéros de série suivants"
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr "Les numéros de série suivants sont déjà alloués"
 
@@ -3832,7 +3812,12 @@ msgstr ""
 msgid "Total cost"
 msgstr ""
 
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
 msgid "Edit Purchase Order"
 msgstr ""
 
@@ -3863,9 +3848,9 @@ msgstr ""
 #: part/templates/part/import_wizard/ajax_match_references.html:42
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3929,7 +3914,7 @@ msgstr ""
 msgid "Order Notes"
 msgstr "Notes de commande"
 
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
 msgid "Add Order Line"
 msgstr ""
 
@@ -3947,12 +3932,12 @@ msgid "Print packing list"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
 msgid "Complete Sales Order"
 msgstr ""
 
@@ -3961,7 +3946,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2471
 msgid "Customer Reference"
 msgstr ""
 
@@ -3971,7 +3956,7 @@ msgstr ""
 msgid "Completed Shipments"
 msgstr ""
 
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
 msgid "Edit Sales Order"
 msgstr ""
 
@@ -3985,7 +3970,7 @@ msgid "Pending Shipments"
 msgstr "Expéditions en attente"
 
 #: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
 msgid "Actions"
 msgstr ""
 
@@ -4113,7 +4098,7 @@ msgid "Part Category"
 msgstr "Catégorie de composant"
 
 #: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
 #: users/models.py:38
 msgid "Part Categories"
 msgstr "Catégories de composants"
@@ -4124,7 +4109,7 @@ msgstr "Catégories de composants"
 #: part/templates/part/category_sidebar.html:9
 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
 #: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
 #: templates/navbar.html:24 users/models.py:39
 msgid "Parts"
 msgstr "Composantes"
@@ -4202,7 +4187,7 @@ msgstr "Catégorie de la pièce"
 
 #: part/models.py:842 part/templates/part/part_base.html:266
 #: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
 msgid "IPN"
 msgstr ""
 
@@ -4316,7 +4301,7 @@ msgid "Test with this name already exists for this part"
 msgstr ""
 
 #: part/models.py:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
 msgid "Test Name"
 msgstr "Nom de test"
 
@@ -4448,7 +4433,7 @@ msgid "BOM quantity for this BOM item"
 msgstr ""
 
 #: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
 #: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
@@ -4482,7 +4467,7 @@ msgid "BOM line checksum"
 msgstr ""
 
 #: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
 #: templates/js/translated/table_filters.js:68
 #: templates/js/translated/table_filters.js:88
 msgid "Inherited"
@@ -4493,7 +4478,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
 #: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
 msgid "Allow Variants"
 msgstr ""
 
@@ -4714,6 +4699,11 @@ msgstr ""
 msgid "New Part"
 msgstr ""
 
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr ""
+
 #: part/templates/part/category.html:172
 msgid "Set category"
 msgstr ""
@@ -4902,46 +4892,46 @@ msgstr ""
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
 msgid "Part Manufacturers"
 msgstr "Fabricants de composants"
 
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
 msgid "Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
 msgid "Add Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
@@ -5084,8 +5074,8 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
 #: templates/js/translated/model_renderers.js:192
 #: templates/js/translated/part.js:581 templates/js/translated/part.js:658
 msgid "Inactive"
@@ -5101,20 +5091,22 @@ msgstr ""
 msgid "This part is a variant of %(link)s"
 msgstr ""
 
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr ""
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr ""
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
 msgid "Can Build"
 msgstr ""
 
@@ -5133,7 +5125,7 @@ msgid "Latest Serial Number"
 msgstr "Dernier numéro de série"
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr "Rechercher un numéro de série"
 
@@ -5172,7 +5164,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -5291,7 +5283,7 @@ msgstr "Afficher le prix de vente"
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
 msgid "Supplier Cost"
 msgstr ""
 
@@ -5530,7 +5522,7 @@ msgstr "Le code-barres correspond déjà à l'objet Stock Item"
 msgid "Barcode associated with Stock Item"
 msgstr "Code-barres associé à l'article en stock"
 
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
 msgid "Label printing failed"
 msgstr ""
 
@@ -5770,12 +5762,12 @@ msgid "Stock Item Test Report"
 msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr "Numéro de série"
 
@@ -5796,7 +5788,7 @@ msgstr "Résultat"
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
 msgid "Date"
 msgstr ""
 
@@ -5815,7 +5807,7 @@ msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2589
 msgid "Serial"
 msgstr ""
 
@@ -5832,7 +5824,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr ""
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr "Propriétaire"
 
@@ -5894,7 +5886,7 @@ msgstr ""
 msgid "Packaging this stock item is stored in"
 msgstr ""
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr ""
 
@@ -5934,8 +5926,8 @@ msgstr ""
 msgid "Destination Sales Order"
 msgstr ""
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1816
 msgid "Expiry Date"
 msgstr ""
 
@@ -6215,11 +6207,11 @@ msgstr ""
 msgid "Installed Stock Items"
 msgstr ""
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
 msgid "Install Stock Item"
 msgstr ""
 
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
 msgid "Add Test Result"
 msgstr ""
 
@@ -6311,110 +6303,114 @@ msgstr ""
 msgid "Delete stock item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr "page précédente"
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr "Accéder au numéro de série précédent"
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr "Accéder au numéro de série suivant"
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:244
-msgid "This stock item has not passed all required tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:252
-msgid "This stock item is allocated to Sales Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr "Cet article de stock est sérialisé - il a un numéro de série unique et la quantité ne peut pas être ajustée."
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr ""
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:284
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:292
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr "Cet article de stock est sérialisé - il a un numéro de série unique et la quantité ne peut pas être ajustée."
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr "page précédente"
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr "Accéder au numéro de série précédent"
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr "Accéder au numéro de série suivant"
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1693
+msgid "No location set"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1832
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr ""
 
@@ -6486,8 +6482,8 @@ msgstr ""
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:198 users/models.py:40
 msgid "Stock Locations"
 msgstr ""
 
@@ -6539,7 +6535,7 @@ msgstr ""
 msgid "Child Items"
 msgstr ""
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr ""
 
@@ -6564,55 +6560,55 @@ msgstr ""
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr ""
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr ""
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr ""
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr ""
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr ""
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr ""
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr ""
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr "Cocher la case de confirmation"
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr ""
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr ""
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr ""
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr ""
 
@@ -7331,9 +7327,9 @@ msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr ""
@@ -7602,14 +7598,14 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
 msgid "Required Quantity"
 msgstr "Quantité requise"
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
 #: templates/js/translated/part.js:530
 #: templates/js/translated/table_filters.js:178
 msgid "Available"
@@ -7644,67 +7640,67 @@ msgstr "Le serveur distant doit être accessible"
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr "L'image distante ne doit pas excéder la taille maximale autorisée de fichier"
 
-#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
 msgid "No Response"
 msgstr "Aucune réponse"
 
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
 msgid "No response from the InvenTree server"
 msgstr "Aucune réponse du serveur InvenTree"
 
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
 msgid "Error 400: Bad request"
 msgstr "Erreur 400: Mauvaise requête"
 
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
 msgid "API request returned error code 400"
 msgstr "La requête de l'API a retourné le code d'erreur 400"
 
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
 msgid "Error 401: Not Authenticated"
 msgstr "Erreur 401: non authentifié"
 
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
 msgid "Authentication credentials not supplied"
 msgstr "Informations d’authentification non fournies"
 
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
 msgid "Error 403: Permission Denied"
 msgstr "Erreur 403: Permission refusée"
 
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
 msgid "You do not have the required permissions to access this function"
 msgstr "Vous n'avez pas les autorisations requises pour accéder à cette fonction"
 
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
 msgid "Error 404: Resource Not Found"
 msgstr "Erreur 404: Ressource introuvable"
 
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
 msgid "The requested resource could not be located on the server"
 msgstr "La ressource demandée n'a pas pu être trouvée sur le serveur"
 
-#: templates/js/translated/api.js:217
+#: templates/js/translated/api.js:262
 msgid "Error 405: Method Not Allowed"
 msgstr "Erreur 405: Méthode non autorisée"
 
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
 msgid "HTTP method not allowed at URL"
 msgstr "Méthode HTTP non autorisée à l'adresse URL"
 
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
 msgid "Error 408: Timeout"
 msgstr "Erreur 408: Délai dépassé"
 
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
 msgid "Connection timeout while requesting data from server"
 msgstr "Délai de connexion dépassé lors de la demande de données depuis le serveur"
 
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
 msgid "Unhandled Error Code"
 msgstr "Code d'erreur non géré"
 
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
 msgid "Error code"
 msgstr "Code d’erreur"
 
@@ -7765,7 +7761,7 @@ msgid "Unknown response from server"
 msgstr "Réponse inconnue du serveur"
 
 #: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "Invalid server response"
 msgstr "Réponse du serveur invalide"
 
@@ -7847,12 +7843,12 @@ msgid "Download BOM Template"
 msgstr "Télécharger le template de la BOM"
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
 msgid "Format"
 msgstr ""
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr "Sélectionner un format de fichier"
 
@@ -7932,84 +7928,84 @@ msgstr ""
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
 msgid "Load BOM for subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
 msgid "No Stock Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
 msgid "Includes variant and substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
 #: templates/js/translated/part.js:690
 msgid "Includes variant stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
 msgid "Includes substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -8131,262 +8127,270 @@ msgstr ""
 msgid "Location not specified"
 msgstr ""
 
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
 msgid "No active build outputs found"
 msgstr ""
 
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
 msgid "Allocated Stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
 msgid "No tracked BOM items for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
 msgid "Completed Tests"
 msgstr ""
 
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
 msgid "No required tests for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
 msgid "Edit stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
 msgid "Delete stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
 msgid "Edit Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
 msgid "Remove Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
 msgid "Substitute parts available"
 msgstr ""
 
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
 msgid "Quantity Per"
 msgstr ""
 
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
 msgid "Insufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
 msgid "Sufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
 msgid "Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
 msgid "Build stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
 msgid "Order stock"
 msgstr "Commander des stocks"
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
 msgid "Allocate stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr ""
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
 msgid "You must select at least one part to allocate"
 msgstr ""
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
 msgid "All Parts Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
 msgid "All selected parts have been fully allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
 msgid "Select source location (leave blank to take from all locations)"
 msgstr ""
 
-#: templates/js/translated/build.js:2117
+#: templates/js/translated/build.js:2100
 msgid "Allocate Stock Items to Build Order"
 msgstr ""
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
 msgid "No matching stock locations"
 msgstr ""
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
 msgid "No matching stock items"
 msgstr ""
 
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
 msgid "Automatic Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
 msgstr ""
 
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
 msgid "If a location is specifed, stock will only be allocated from that location"
 msgstr ""
 
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
 msgstr ""
 
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
 msgstr ""
 
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
 msgid "Allocate Stock Items"
 msgstr ""
 
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
 msgid "Select"
 msgstr ""
 
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
 msgid "Build order is overdue"
 msgstr ""
 
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
 msgid "Progress"
 msgstr ""
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
 msgid "No user information"
 msgstr "Pas d'informations sur l'utilisateur"
 
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
 msgid "No information"
 msgstr ""
 
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
 msgid "No parts allocated for"
 msgstr ""
 
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
 msgid "Add Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
 msgid "Edit Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:342
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
 msgid "Parts Supplied"
 msgstr "Composantes fournies"
 
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
 msgid "Parts Manufactured"
 msgstr "Composantes fabriquées"
 
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr ""
+
+#: templates/js/translated/company.js:595
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
 #: templates/js/translated/part.js:650
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
 #: templates/js/translated/part.js:654
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
 msgid "No supplier parts found"
 msgstr ""
 
@@ -8424,61 +8428,61 @@ msgstr ""
 msgid "Create filter"
 msgstr ""
 
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
 msgid "Action Prohibited"
 msgstr ""
 
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
 msgid "Create operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
 msgid "Update operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
 msgid "Delete operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
 msgid "View operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
 msgid "Keep this form open"
 msgstr ""
 
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
 msgid "Enter a valid number"
 msgstr ""
 
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
 #: templates/modals.html:43
 msgid "Form errors exist"
 msgstr ""
 
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
 msgid "No results found"
 msgstr ""
 
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
 msgid "Searching"
 msgstr ""
 
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
 msgid "Clear input"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "File Column"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "Field Name"
 msgstr ""
 
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
 msgid "Select Columns"
 msgstr ""
 
@@ -8552,62 +8556,62 @@ msgstr ""
 msgid "Select Label Template"
 msgstr ""
 
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
 msgid "Cancel"
 msgstr "Annuler"
 
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
 #: templates/modals.html:28 templates/modals.html:51
 msgid "Submit"
 msgstr ""
 
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
 msgid "Form Title"
 msgstr ""
 
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
 msgid "Waiting for server..."
 msgstr ""
 
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
 msgid "Show Error Information"
 msgstr ""
 
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
 msgid "Accept"
 msgstr ""
 
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
 msgid "Loading Data"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Invalid response from server"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Form data missing from server response"
 msgstr ""
 
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
 msgid "Error posting form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "JSON response missing form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
 msgid "Error 400: Bad Request"
 msgstr ""
 
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
 msgid "Server returned error code 400"
 msgstr ""
 
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
 msgid "Error requesting form data"
 msgstr ""
 
@@ -8665,377 +8669,381 @@ msgstr ""
 msgid "Notifications will load here"
 msgstr ""
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
 msgstr ""
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
 msgstr ""
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr ""
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr ""
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr ""
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr ""
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr ""
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr ""
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr ""
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr ""
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr ""
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr ""
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr ""
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
 msgid "Stock Status"
 msgstr ""
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr "Référence de commande"
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr "Commandé"
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr ""
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
 msgid "Order is overdue"
 msgstr "Commande en retard"
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
 msgid "Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
 msgid "Duplicate Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
 msgid "Edit Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
 msgid "Delete Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1856
 msgid "No line items found"
 msgstr ""
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
 msgid "Total"
 msgstr ""
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
 msgid "Total Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
 msgid "Duplicate line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
 msgid "Edit line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
 msgid "Delete line item"
 msgstr ""
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
 msgid "Duplicate line"
 msgstr ""
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
 msgid "Edit line"
 msgstr ""
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
 msgid "Delete line"
 msgstr ""
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
 msgid "Duplicate Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
 msgid "Edit Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
 msgid "Delete Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2279
 msgid "No matching line"
 msgstr ""
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2392
 msgid "No sales orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2462
 msgid "Invalid Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2549
 msgid "Edit shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2552
 msgid "Complete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2557
 msgid "Delete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2577
 msgid "Edit Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2594
 msgid "Delete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2628
 msgid "No matching shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2638
 msgid "Shipment Reference"
 msgstr ""
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2662
 msgid "Not shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2668
 msgid "Tracking"
 msgstr ""
 
-#: templates/js/translated/order.js:2603
+#: templates/js/translated/order.js:2672
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:2841
 msgid "Add Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2892
 msgid "Confirm stock allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2893
 msgid "Allocate Stock Items to Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:3101
 msgid "No sales order allocations found"
 msgstr ""
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:3182
 msgid "Edit Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:3199
 msgid "Confirm Delete Operation"
 msgstr ""
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:3200
 msgid "Delete Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
 msgid "Shipped to customer"
 msgstr "Livré au client"
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
 msgid "Stock location not specified"
 msgstr ""
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3623
 msgid "Allocate serial numbers"
 msgstr "Allouer des numéros de série"
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3629
 msgid "Purchase stock"
 msgstr "Acheter du stock"
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
 msgid "Calculate price"
 msgstr "Calculer le prix"
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3648
 msgid "Cannot be deleted as items have been shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3651
 msgid "Cannot be deleted as items have been allocated"
 msgstr ""
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3733
 msgid "Allocate Serial Numbers"
 msgstr "Allouer des numéros de série"
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3842
 msgid "Update Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3856
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:4092
 msgid "No matching lines"
 msgstr ""
 
@@ -9217,7 +9225,7 @@ msgid "No category"
 msgstr "Aucune catégorie"
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2238
 msgid "Display as list"
 msgstr "Afficher sous forme de liste"
 
@@ -9225,7 +9233,7 @@ msgstr "Afficher sous forme de liste"
 msgid "Display as grid"
 msgstr "Afficher sous forme de grille"
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
 msgid "Display as tree"
 msgstr "Afficher sous forme d'arborescence"
 
@@ -9233,7 +9241,7 @@ msgstr "Afficher sous forme d'arborescence"
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
 msgid "Path"
 msgstr "Chemin d'accès"
 
@@ -9241,12 +9249,12 @@ msgstr "Chemin d'accès"
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
 msgid "Edit test result"
 msgstr "Modifier le résultat du test"
 
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
 msgid "Delete test result"
 msgstr "Supprimer le résultat du test"
 
@@ -9367,11 +9375,11 @@ msgstr ""
 msgid "Sales Order(s) must be selected before printing report"
 msgstr ""
 
-#: templates/js/translated/search.js:307
+#: templates/js/translated/search.js:352
 msgid "Minimize results"
 msgstr ""
 
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:355
 msgid "Remove results"
 msgstr ""
 
@@ -9531,204 +9539,204 @@ msgstr "Vous devez sélectionner au moins un article en stock disponible"
 msgid "Confirm stock adjustment"
 msgstr ""
 
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
 msgid "PASS"
 msgstr "RÉUSSI"
 
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
 msgid "FAIL"
 msgstr "ÉCHEC"
 
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
 msgid "NO RESULT"
 msgstr "AUCUN RÉSULTAT"
 
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
 msgid "Pass test"
 msgstr ""
 
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
 msgid "Add test result"
 msgstr "Ajouter un résultat de test"
 
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
 msgid "No test results found"
 msgstr "Aucun résultat de test trouvé"
 
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
 msgid "Test Date"
 msgstr "Date du test"
 
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
 msgid "Edit Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
 msgid "Delete Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
 msgid "In production"
 msgstr "En production"
 
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
 msgid "Installed in Stock Item"
 msgstr "Article en stock installé dans un autre article en stock"
 
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
 msgid "Assigned to Sales Order"
 msgstr "Assigné à une commande de vente"
 
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
 msgid "No stock location set"
 msgstr "Aucun emplacement de stock défini"
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1712
 msgid "Stock item is in production"
 msgstr "L'article de stock est en production"
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1717
 msgid "Stock item assigned to sales order"
 msgstr "L'article en stock a été assigné à une commande de vente"
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1720
 msgid "Stock item assigned to customer"
 msgstr "L'article en stock a été assigné à un client"
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr "L'article en stock a expiré"
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr "L'article en stock va bientôt expirer"
-
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
 msgid "Serialized stock item has been allocated"
 msgstr "L'article de stock sérialisé a été alloué"
 
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
 msgid "Stock item has been fully allocated"
 msgstr "L'article de stock a été complètement alloué"
 
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
 msgid "Stock item has been partially allocated"
 msgstr "L'article de stock a été partiellement alloué"
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1730
 msgid "Stock item has been installed in another item"
 msgstr "L'article en stock a été installé dans un autre article"
 
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1734
+msgid "Stock item has expired"
+msgstr "L'article en stock a expiré"
+
+#: templates/js/translated/stock.js:1736
+msgid "Stock item will expire soon"
+msgstr "L'article en stock va bientôt expirer"
+
+#: templates/js/translated/stock.js:1743
 msgid "Stock item has been rejected"
 msgstr "L'article de stock a été rejeté"
 
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1745
 msgid "Stock item is lost"
 msgstr "L'article de stock est perdu"
 
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1747
 msgid "Stock item is destroyed"
 msgstr "L'article de stock est détruit"
 
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1751
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr "Epuisé"
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1802
 msgid "Stocktake"
 msgstr "Prise d'inventaire"
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1884
 msgid "Supplier part not specified"
 msgstr "Pièce de fournisseur non précisée"
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1922
 msgid "No stock items matching query"
 msgstr "Aucun article de stock ne correspond à la requête"
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2095
 msgid "Set Stock Status"
 msgstr "Définir l'état du stock"
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2109
 msgid "Select Status Code"
 msgstr "Sélectionner le code de statut"
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2110
 msgid "Status code must be selected"
 msgstr "Le code de statut doit être sélectionné"
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2365
 msgid "Details"
 msgstr "Détails"
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2381
 msgid "Part information unavailable"
 msgstr ""
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2403
 msgid "Location no longer exists"
 msgstr "L'emplacement n'existe plus"
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2422
 msgid "Purchase order no longer exists"
 msgstr "La commande d'achat n'existe plus"
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
 msgid "Customer no longer exists"
 msgstr "Le client n'existe plus"
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2459
 msgid "Stock item no longer exists"
 msgstr "L'article de stock n'existe plus"
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2482
 msgid "Added"
 msgstr "Ajouté"
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2490
 msgid "Removed"
 msgstr "Supprimé"
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2566
 msgid "No installed items"
 msgstr ""
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
 msgid "Uninstall Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2666
 msgid "Select stock item to uninstall"
 msgstr ""
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2687
 msgid "Install another stock item into this item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2688
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr ""
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2690
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2691
 msgid "The Stock Item is currently available in stock"
 msgstr ""
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2692
 msgid "The Stock Item is not already installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2693
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr ""
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2706
 msgid "Select part to install"
 msgstr ""
 
@@ -9960,69 +9968,81 @@ msgstr ""
 msgid "Purchasable"
 msgstr "Achetable"
 
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr "Affichage du calendrier"
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr "Affichage en liste"
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
 msgid "Export Table Data"
 msgstr ""
 
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
 msgid "Select File Format"
 msgstr ""
 
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
 msgid "Loading data"
 msgstr "Chargement des données"
 
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
 msgid "rows per page"
 msgstr "résultats par page"
 
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
 msgid "Showing all rows"
 msgstr "Afficher toutes les lignes"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "Showing"
 msgstr "Afficher"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "to"
 msgstr "à"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "of"
 msgstr "de"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "rows"
 msgstr "lignes"
 
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
 #: templates/search.html:8 templates/search_form.html:6
 #: templates/search_form.html:7
 msgid "Search"
 msgstr "Rechercher"
 
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
 msgid "No matching results"
 msgstr "Aucun résultat correspondant n'a été trouvé"
 
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
 msgid "Hide/Show pagination"
 msgstr "Masquer/Afficher la pagination"
 
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
 msgid "Refresh"
 msgstr "Actualiser"
 
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
 msgid "Toggle"
 msgstr ""
 
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
 msgid "Columns"
 msgstr "Colonnes"
 
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
 msgid "All"
 msgstr "Tout"
 
diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po
index 7d83d85f79..561693838a 100644
--- a/InvenTree/locale/he/LC_MESSAGES/django.po
+++ b/InvenTree/locale/he/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
-"PO-Revision-Date: 2022-05-24 01:42\n"
+"POT-Creation-Date: 2022-05-28 23:41+0000\n"
+"PO-Revision-Date: 2022-05-29 01:47\n"
 "Last-Translator: \n"
 "Language-Team: Hebrew\n"
 "Language: he_IL\n"
@@ -21,7 +21,7 @@ msgstr ""
 msgid "API endpoint not found"
 msgstr ""
 
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
 msgid "Error details can be found in the admin panel"
 msgstr ""
 
@@ -30,7 +30,7 @@ msgid "Enter date"
 msgstr "הזן תאריך סיום"
 
 #: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
 msgid "Confirm"
 msgstr "אשר"
 
@@ -79,7 +79,7 @@ msgstr "חובה לרשום את אותו אימייל בכל פעם."
 msgid "Duplicate serial: {sn}"
 msgstr ""
 
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
 msgid "Invalid quantity provided"
 msgstr ""
 
@@ -134,10 +134,12 @@ msgid "Select file to attach"
 msgstr "בחר קובץ לצירוף"
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:139 order/models.py:1273
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr "קישור"
 
@@ -159,7 +161,7 @@ msgstr "הערת קובץ"
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2513
 msgid "User"
 msgstr "משתמש"
 
@@ -205,9 +207,10 @@ msgstr "בחירה שגויה"
 #: templates/InvenTree/settings/plugin.html:132
 #: templates/InvenTree/settings/plugin_settings.html:23
 #: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2283
 msgid "Name"
 msgstr "שם"
 
@@ -216,22 +219,22 @@ msgstr "שם"
 #: company/models.py:575 company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
 #: part/templates/part/part_base.html:167
 #: part/templates/part/set_category.html:14 report/models.py:182
 #: report/models.py:547 report/models.py:586
 #: report/templates/report/inventree_build_order_base.html:118
 #: stock/templates/stock/location.html:103
 #: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
 msgid "Description"
 msgstr "תיאור"
 
@@ -406,7 +409,7 @@ msgid "InvenTree system health checks failed"
 msgstr ""
 
 #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
 msgid "Pending"
 msgstr "בהמתנה"
 
@@ -414,141 +417,145 @@ msgstr "בהמתנה"
 msgid "Placed"
 msgstr "מוקם"
 
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
 #: order/templates/order/order_base.html:134
 #: order/templates/order/sales_order_base.html:133
 msgid "Complete"
 msgstr "הושלם"
 
 #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
 msgid "Cancelled"
 msgstr "מבוטל"
 
 #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
 msgid "Lost"
 msgstr "אבד"
 
 #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
 msgid "Returned"
 msgstr "הוחזר"
 
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
 msgid "Shipped"
 msgstr "נשלח"
 
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
 msgid "OK"
 msgstr "מצב טוב"
 
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
 msgid "Attention needed"
 msgstr "דרושה תשומת לב"
 
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
 msgid "Damaged"
 msgstr "פגום"
 
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
 msgid "Destroyed"
 msgstr "הרוס"
 
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
 msgid "Rejected"
 msgstr "נדחה"
 
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
 msgid "Legacy stock tracking entry"
 msgstr ""
 
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
 msgid "Stock item created"
 msgstr ""
 
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
 msgid "Edited stock item"
 msgstr ""
 
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
 msgid "Assigned serial number"
 msgstr ""
 
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
 msgid "Stock counted"
 msgstr ""
 
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
 msgid "Stock manually added"
 msgstr ""
 
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
 msgid "Stock manually removed"
 msgstr ""
 
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
 msgid "Location changed"
 msgstr "מיקום שונה"
 
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
 msgid "Installed into assembly"
 msgstr ""
 
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
 msgid "Removed from assembly"
 msgstr ""
 
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
 msgid "Installed component item"
 msgstr ""
 
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
 msgid "Removed component item"
 msgstr ""
 
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
 msgid "Split from parent item"
 msgstr ""
 
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
 msgid "Merged stock items"
 msgstr ""
 
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
 msgid "Converted to variant"
 msgstr ""
 
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
 msgid "Sent to customer"
 msgstr "נשלח ללקוח"
 
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
 msgid "Returned from customer"
 msgstr "הוחזר מלקוח"
 
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
 msgid "Build order output created"
 msgstr ""
 
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
 msgid "Build order output completed"
 msgstr ""
 
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
 msgid "Consumed by build order"
 msgstr ""
 
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
 msgid "Received against purchase order"
 msgstr ""
 
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
 msgid "Production"
 msgstr "ייצור"
 
@@ -637,15 +644,15 @@ msgstr ""
 msgid "Build Order Reference"
 msgstr ""
 
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
 #: part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
 msgid "Reference"
 msgstr "מקט"
 
@@ -664,7 +671,7 @@ msgstr ""
 
 #: build/models.py:225 build/templates/build/build_base.html:77
 #: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
 #: part/models.py:2303 part/models.py:2319 part/models.py:2338
 #: part/models.py:2355 part/models.py:2457 part/models.py:2579
 #: part/models.py:2669 part/models.py:2760 part/models.py:3050
@@ -679,19 +686,21 @@ msgstr ""
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
 #: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
 msgid "Part"
 msgstr "רכיב"
 
@@ -708,7 +717,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr ""
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
 msgid "Source Location"
 msgstr ""
 
@@ -749,7 +758,7 @@ msgid "Build status code"
 msgstr ""
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr ""
 
@@ -757,12 +766,12 @@ msgstr ""
 msgid "Batch code for this build output"
 msgstr ""
 
-#: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
 msgid "Creation Date"
 msgstr ""
 
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
 msgid "Target completion date"
 msgstr ""
 
@@ -770,8 +779,8 @@ msgstr ""
 msgid "Target date for build completion. Build will be overdue after this date."
 msgstr ""
 
-#: build/models.py:300 order/models.py:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
 msgid "Completion Date"
 msgstr ""
 
@@ -779,7 +788,7 @@ msgstr ""
 msgid "completed by"
 msgstr ""
 
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
 msgid "Issued by"
 msgstr ""
 
@@ -788,11 +797,11 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
 msgid "Responsible"
 msgstr ""
 
@@ -804,14 +813,14 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr ""
 
 #: build/models.py:334 build/serializers.py:390
 #: build/templates/build/sidebar.html:21 company/models.py:134
 #: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
 #: order/templates/order/po_sidebar.html:11
 #: order/templates/order/so_sidebar.html:17 part/models.py:983
 #: part/templates/part/part_sidebar.html:59
@@ -820,11 +829,11 @@ msgstr ""
 #: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
 msgid "Notes"
 msgstr ""
 
@@ -857,7 +866,7 @@ msgstr ""
 msgid "Stock item is over-allocated"
 msgstr ""
 
-#: build/models.py:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1413
 msgid "Allocation quantity must be greater than zero"
 msgstr ""
 
@@ -869,8 +878,8 @@ msgstr ""
 msgid "Selected stock item not found in BOM"
 msgstr ""
 
-#: build/models.py:1375 stock/templates/stock/item_base.html:335
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
 #: templates/navbar.html:38
 msgid "Build"
 msgstr ""
@@ -879,18 +888,18 @@ msgstr ""
 msgid "Build to allocate parts"
 msgstr ""
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2449
 msgid "Stock Item"
 msgstr ""
 
@@ -902,10 +911,10 @@ msgstr ""
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_build_order_base.html:114
@@ -913,25 +922,24 @@ 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
 msgid "Quantity"
 msgstr "כמות"
 
@@ -948,7 +956,7 @@ msgid "Destination stock item"
 msgstr ""
 
 #: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
 msgid "Build Output"
 msgstr ""
 
@@ -972,7 +980,7 @@ msgstr ""
 msgid "Enter quantity for build output"
 msgstr ""
 
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
 #: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
 #: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
 #: stock/serializers.py:294
@@ -987,8 +995,8 @@ msgstr ""
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr ""
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr "מספרים סידוריים"
@@ -1015,15 +1023,15 @@ msgstr ""
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
 msgid "Location"
 msgstr ""
 
@@ -1032,12 +1040,12 @@ msgid "Location for completed build outputs"
 msgstr ""
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: build/templates/build/detail.html:62 order/models.py:663
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
 msgid "Status"
 msgstr ""
 
@@ -1118,7 +1126,7 @@ msgstr ""
 msgid "Item must be in stock"
 msgstr ""
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr ""
@@ -1135,7 +1143,7 @@ msgstr ""
 msgid "This stock item has already been allocated to this build output"
 msgstr ""
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr ""
 
@@ -1233,13 +1241,13 @@ msgid "Stock has not been fully allocated to this Build Order"
 msgstr ""
 
 #: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr ""
 
@@ -1266,14 +1274,14 @@ msgid "Completed"
 msgstr ""
 
 #: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2436
 msgid "Sales Order"
 msgstr ""
 
@@ -1308,8 +1316,8 @@ msgstr ""
 msgid "Stock can be taken from any available location."
 msgstr ""
 
-#: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
 msgid "Destination"
 msgstr ""
 
@@ -1322,11 +1330,11 @@ msgid "Allocated Parts"
 msgstr ""
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
-#: templates/js/translated/build.js:1184
+#: stock/templates/stock/item_base.html:170
+#: templates/js/translated/build.js:1179
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1335,7 +1343,7 @@ msgstr ""
 #: build/templates/build/detail.html:126
 #: order/templates/order/order_base.html:149
 #: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
 msgid "Created"
 msgstr ""
 
@@ -1355,7 +1363,7 @@ msgstr ""
 msgid "Allocate Stock to Build"
 msgstr ""
 
-#: build/templates/build/detail.html:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
 msgid "Unallocate stock"
 msgstr ""
 
@@ -1385,8 +1393,8 @@ msgstr ""
 
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: company/templates/company/detail.html:85
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr ""
 
@@ -1461,8 +1469,8 @@ msgid "Completed Build Outputs"
 msgstr ""
 
 #: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
 #: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:82
 #: order/templates/order/sales_order_detail.html:129
@@ -1476,11 +1484,11 @@ msgstr ""
 msgid "Build Notes"
 msgstr ""
 
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
 msgid "Allocation Complete"
 msgstr ""
 
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
@@ -1492,18 +1500,6 @@ msgstr ""
 msgid "Print Build Orders"
 msgstr ""
 
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr ""
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr ""
-
 #: build/templates/build/sidebar.html:5
 msgid "Build Order Details"
 msgstr ""
@@ -1727,7 +1723,7 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
 #: templates/js/translated/table_filters.js:168
 #: templates/js/translated/table_filters.js:460
 msgid "Assembly"
@@ -2413,7 +2409,7 @@ msgid "Price break quantity"
 msgstr ""
 
 #: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: company/templates/company/supplier_part.html:263 order/models.py:975
 #: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
 msgid "Price"
 msgstr ""
@@ -2556,7 +2552,7 @@ msgstr ""
 
 #: company/models.py:104 company/templates/company/company_base.html:100
 #: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
 msgid "Website"
 msgstr ""
 
@@ -2651,10 +2647,11 @@ msgstr ""
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: stock/templates/stock/item_base.html:212
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
 #: templates/js/translated/table_filters.js:411
 msgid "Manufacturer"
 msgstr ""
@@ -2665,8 +2662,10 @@ msgstr ""
 
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr ""
@@ -2686,7 +2685,7 @@ msgstr ""
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr ""
 
@@ -2696,8 +2695,9 @@ msgstr ""
 
 #: company/models.py:427
 #: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
 msgid "Value"
 msgstr ""
 
@@ -2708,7 +2708,7 @@ msgstr ""
 #: company/models.py:434 part/models.py:940 part/models.py:2549
 #: part/templates/part/part_base.html:280
 #: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
 msgid "Units"
 msgstr ""
 
@@ -2721,11 +2721,12 @@ msgid "Linked manufacturer part must reference the same base part"
 msgstr ""
 
 #: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: stock/templates/stock/item_base.html:229
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2736,8 +2737,9 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
 msgid "SKU"
 msgstr ""
 
@@ -2773,8 +2775,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr ""
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
 msgid "Packaging"
 msgstr ""
 
@@ -2804,12 +2806,12 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
 msgid "Company"
 msgstr ""
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr ""
 
@@ -2822,7 +2824,7 @@ msgid "Edit company information"
 msgstr ""
 
 #: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
 msgid "Edit Company"
 msgstr ""
 
@@ -2845,12 +2847,12 @@ msgstr ""
 msgid "Download image from URL"
 msgstr ""
 
-#: company/templates/company/company_base.html:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr ""
@@ -2869,7 +2871,7 @@ msgid "Upload Image"
 msgstr ""
 
 #: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
+#: company/templates/company/manufacturer_part_sidebar.html:7
 #: templates/InvenTree/search.html:118
 msgid "Supplier Parts"
 msgstr ""
@@ -2884,28 +2886,19 @@ msgstr ""
 msgid "New Supplier Part"
 msgstr ""
 
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr ""
-
 #: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
 #: part/templates/part/category.html:176
 msgid "Order parts"
 msgstr ""
 
 #: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
 msgid "Delete parts"
 msgstr ""
 
 #: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
 msgid "Delete Parts"
 msgstr ""
 
@@ -2917,88 +2910,76 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
 msgid "New Manufacturer Part"
 msgstr ""
 
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
 msgid "Supplier Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
 #: company/templates/company/sidebar.html:12
 #: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
 #: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:235 templates/navbar.html:50
 #: users/models.py:43
 msgid "Purchase Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
 #: order/templates/order/purchase_orders.html:17
 msgid "Create new purchase order"
 msgstr ""
 
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr ""
 
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
 #: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
 #: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
 #: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:259 templates/navbar.html:61
 #: users/models.py:44
 msgid "Sales Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
 #: order/templates/order/sales_orders.html:20
 msgid "Create new sales order"
 msgstr ""
 
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
 #: order/templates/order/sales_orders.html:21
 msgid "New Sales Order"
 msgstr ""
 
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
 msgid "Assigned Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
 msgid "Company Notes"
 msgstr ""
 
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr ""
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr ""
-
 #: company/templates/company/index.html:8
 msgid "Supplier List"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
 #: templates/navbar.html:49
 msgid "Manufacturers"
 msgstr ""
@@ -3011,12 +2992,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -3032,55 +3013,46 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:119
 #: company/templates/company/supplier_part.html:15 company/views.py:41
 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
 msgid "Suppliers"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
 #: part/templates/part/detail.html:363
 msgid "Delete supplier parts"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
 msgid "Delete"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:164
+#: company/templates/company/manufacturer_part.html:166
 #: company/templates/company/manufacturer_part_sidebar.html:5
 #: part/templates/part/category_sidebar.html:19
 #: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8
 msgid "Parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
 #: part/templates/part/detail.html:184
 #: templates/InvenTree/settings/category.html:12
 #: templates/InvenTree/settings/part.html:66
 msgid "New Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
 msgid "Delete parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
 msgid "Add Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr ""
-
 #: company/templates/company/sidebar.html:6
 msgid "Manufactured Parts"
 msgstr ""
@@ -3099,19 +3071,19 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
 msgid "Delete supplier part"
 msgstr ""
 
@@ -3186,11 +3158,11 @@ msgstr ""
 #: part/templates/part/part_sidebar.html:14
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
 #: templates/InvenTree/settings/sidebar.html:43
 #: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
 #: templates/navbar.html:31
 msgid "Stock"
 msgstr ""
@@ -3216,8 +3188,8 @@ msgstr ""
 #: stock/templates/stock/location.html:161
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
+#: templates/js/translated/stock.js:2307 users/models.py:41
 msgid "Stock Items"
 msgstr ""
 
@@ -3229,7 +3201,7 @@ msgstr ""
 msgid "New Manufacturer"
 msgstr ""
 
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
 #: templates/navbar.html:60
 msgid "Customers"
 msgstr ""
@@ -3238,7 +3210,7 @@ msgstr ""
 msgid "New Customer"
 msgstr ""
 
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:212
 msgid "Companies"
 msgstr ""
 
@@ -3328,305 +3300,313 @@ msgstr ""
 msgid "Part query filters (comma-separated value of key=value pairs)"
 msgstr ""
 
-#: order/models.py:130
+#: order/models.py:137
 msgid "Order description"
 msgstr ""
 
-#: order/models.py:132
+#: order/models.py:139 order/models.py:1274
 msgid "Link to external page"
 msgstr ""
 
-#: order/models.py:140
+#: order/models.py:147
 msgid "Created By"
 msgstr ""
 
-#: order/models.py:147
+#: order/models.py:154
 msgid "User or group responsible for this order"
 msgstr ""
 
-#: order/models.py:152
+#: order/models.py:159
 msgid "Order notes"
 msgstr ""
 
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
 msgid "Order reference"
 msgstr ""
 
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
 msgid "Purchase order status"
 msgstr ""
 
-#: order/models.py:253
+#: order/models.py:311
 msgid "Company from which the items are being ordered"
 msgstr ""
 
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
 msgid "Supplier Reference"
 msgstr ""
 
-#: order/models.py:256
+#: order/models.py:314
 msgid "Supplier order reference code"
 msgstr ""
 
-#: order/models.py:263
+#: order/models.py:321
 msgid "received by"
 msgstr ""
 
-#: order/models.py:268
+#: order/models.py:326
 msgid "Issue Date"
 msgstr ""
 
-#: order/models.py:269
+#: order/models.py:327
 msgid "Date order was issued"
 msgstr ""
 
-#: order/models.py:274
+#: order/models.py:332
 msgid "Target Delivery Date"
 msgstr ""
 
-#: order/models.py:275
+#: order/models.py:333
 msgid "Expected date for order delivery. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:281
+#: order/models.py:339
 msgid "Date order was completed"
 msgstr ""
 
-#: order/models.py:310
+#: order/models.py:368
 msgid "Part supplier must match PO supplier"
 msgstr ""
 
-#: order/models.py:456
+#: order/models.py:514
 msgid "Quantity must be a positive number"
 msgstr ""
 
-#: order/models.py:601
+#: order/models.py:659
 msgid "Company to which the items are being sold"
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer Reference "
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer order reference code"
 msgstr ""
 
-#: order/models.py:612
+#: order/models.py:670
 msgid "Target date for order completion. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
 msgid "Shipment Date"
 msgstr ""
 
-#: order/models.py:622
+#: order/models.py:680
 msgid "shipped by"
 msgstr ""
 
-#: order/models.py:688
+#: order/models.py:746
 msgid "Order cannot be completed as no parts have been assigned"
 msgstr ""
 
-#: order/models.py:692
+#: order/models.py:750
 msgid "Only a pending order can be marked as complete"
 msgstr ""
 
-#: order/models.py:695
+#: order/models.py:753
 msgid "Order cannot be completed as there are incomplete shipments"
 msgstr ""
 
-#: order/models.py:698
+#: order/models.py:756
 msgid "Order cannot be completed as there are incomplete line items"
 msgstr ""
 
-#: order/models.py:878
+#: order/models.py:936
 msgid "Item quantity"
 msgstr ""
 
-#: order/models.py:884
+#: order/models.py:942
 msgid "Line item reference"
 msgstr ""
 
-#: order/models.py:886
+#: order/models.py:944
 msgid "Line item notes"
 msgstr ""
 
-#: order/models.py:891
+#: order/models.py:949
 msgid "Target shipping date for this line item"
 msgstr ""
 
-#: order/models.py:909
+#: order/models.py:967
 msgid "Context"
 msgstr ""
 
-#: order/models.py:910
+#: order/models.py:968
 msgid "Additional context for this line"
 msgstr ""
 
-#: order/models.py:918
+#: order/models.py:976
 msgid "Unit price"
 msgstr ""
 
-#: order/models.py:951
+#: order/models.py:1009
 msgid "Supplier part must match supplier"
 msgstr ""
 
-#: order/models.py:958
+#: order/models.py:1016
 msgid "deleted"
 msgstr ""
 
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
 msgid "Order"
 msgstr ""
 
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
 msgid "Purchase Order"
 msgstr ""
 
-#: order/models.py:984
+#: order/models.py:1042
 msgid "Supplier part"
 msgstr ""
 
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
 msgstr ""
 
-#: order/models.py:992
+#: order/models.py:1050
 msgid "Number of items received"
 msgstr ""
 
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1900
 msgid "Purchase Price"
 msgstr ""
 
-#: order/models.py:1000
+#: order/models.py:1058
 msgid "Unit purchase price"
 msgstr ""
 
-#: order/models.py:1008
+#: order/models.py:1066
 msgid "Where does the Purchaser want this item to be stored?"
 msgstr ""
 
-#: order/models.py:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
 #: part/templates/part/prices.html:119 part/templates/part/prices.html:288
 msgid "Sale Price"
 msgstr ""
 
-#: order/models.py:1079
+#: order/models.py:1137
 msgid "Unit sale price"
 msgstr ""
 
-#: order/models.py:1084
+#: order/models.py:1142
 msgid "Shipped quantity"
 msgstr ""
 
-#: order/models.py:1171
+#: order/models.py:1229
 msgid "Date of shipment"
 msgstr ""
 
-#: order/models.py:1178
+#: order/models.py:1236
 msgid "Checked By"
 msgstr ""
 
-#: order/models.py:1179
+#: order/models.py:1237
 msgid "User who checked this shipment"
 msgstr ""
 
-#: order/models.py:1187
+#: order/models.py:1245
 msgid "Shipment number"
 msgstr ""
 
-#: order/models.py:1194
+#: order/models.py:1252
 msgid "Shipment notes"
 msgstr ""
 
-#: order/models.py:1201
+#: order/models.py:1259
 msgid "Tracking Number"
 msgstr ""
 
-#: order/models.py:1202
+#: order/models.py:1260
 msgid "Shipment tracking information"
 msgstr ""
 
-#: order/models.py:1213
+#: order/models.py:1267
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1268
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1285
 msgid "Shipment has already been sent"
 msgstr ""
 
-#: order/models.py:1216
+#: order/models.py:1288
 msgid "Shipment has no allocated stock items"
 msgstr ""
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1395 order/models.py:1397
 msgid "Stock item has not been assigned"
 msgstr ""
 
-#: order/models.py:1317
+#: order/models.py:1401
 msgid "Cannot allocate stock item to a line with a different part"
 msgstr ""
 
-#: order/models.py:1319
+#: order/models.py:1403
 msgid "Cannot allocate stock to a line without a part"
 msgstr ""
 
-#: order/models.py:1322
+#: order/models.py:1406
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr ""
 
-#: order/models.py:1326
+#: order/models.py:1410
 msgid "StockItem is over-allocated"
 msgstr ""
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1416 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr ""
 
-#: order/models.py:1335
+#: order/models.py:1419
 msgid "Sales order does not match shipment"
 msgstr ""
 
-#: order/models.py:1336
+#: order/models.py:1420
 msgid "Shipment does not match sales order"
 msgstr ""
 
-#: order/models.py:1344
+#: order/models.py:1428
 msgid "Line"
 msgstr ""
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr ""
 
-#: order/models.py:1353
+#: order/models.py:1437
 msgid "Sales order shipment reference"
 msgstr ""
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr ""
 
-#: order/models.py:1366
+#: order/models.py:1450
 msgid "Select stock item to allocate"
 msgstr ""
 
-#: order/models.py:1369
+#: order/models.py:1453
 msgid "Enter stock allocation quantity"
 msgstr ""
 
@@ -3662,7 +3642,7 @@ msgstr ""
 msgid "Purchase order must match supplier"
 msgstr ""
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr ""
 
@@ -3674,11 +3654,11 @@ msgstr ""
 msgid "Select destination location for received items"
 msgstr ""
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr ""
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr ""
 
@@ -3714,35 +3694,35 @@ msgstr ""
 msgid "Sale price currency"
 msgstr ""
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr ""
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr ""
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr ""
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr ""
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr ""
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr ""
 
@@ -3832,7 +3812,12 @@ msgstr ""
 msgid "Total cost"
 msgstr ""
 
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
 msgid "Edit Purchase Order"
 msgstr ""
 
@@ -3863,9 +3848,9 @@ msgstr ""
 #: part/templates/part/import_wizard/ajax_match_references.html:42
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3929,7 +3914,7 @@ msgstr ""
 msgid "Order Notes"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
 msgid "Add Order Line"
 msgstr ""
 
@@ -3947,12 +3932,12 @@ msgid "Print packing list"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
 msgid "Complete Sales Order"
 msgstr ""
 
@@ -3961,7 +3946,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2471
 msgid "Customer Reference"
 msgstr ""
 
@@ -3971,7 +3956,7 @@ msgstr ""
 msgid "Completed Shipments"
 msgstr ""
 
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
 msgid "Edit Sales Order"
 msgstr ""
 
@@ -3985,7 +3970,7 @@ msgid "Pending Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
 msgid "Actions"
 msgstr ""
 
@@ -4113,7 +4098,7 @@ msgid "Part Category"
 msgstr ""
 
 #: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
 #: users/models.py:38
 msgid "Part Categories"
 msgstr ""
@@ -4124,7 +4109,7 @@ msgstr ""
 #: part/templates/part/category_sidebar.html:9
 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
 #: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
 #: templates/navbar.html:24 users/models.py:39
 msgid "Parts"
 msgstr ""
@@ -4202,7 +4187,7 @@ msgstr ""
 
 #: part/models.py:842 part/templates/part/part_base.html:266
 #: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
 msgid "IPN"
 msgstr ""
 
@@ -4316,7 +4301,7 @@ msgid "Test with this name already exists for this part"
 msgstr ""
 
 #: part/models.py:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
 msgid "Test Name"
 msgstr ""
 
@@ -4448,7 +4433,7 @@ msgid "BOM quantity for this BOM item"
 msgstr ""
 
 #: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
 #: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
@@ -4482,7 +4467,7 @@ msgid "BOM line checksum"
 msgstr ""
 
 #: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
 #: templates/js/translated/table_filters.js:68
 #: templates/js/translated/table_filters.js:88
 msgid "Inherited"
@@ -4493,7 +4478,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
 #: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
 msgid "Allow Variants"
 msgstr ""
 
@@ -4714,6 +4699,11 @@ msgstr ""
 msgid "New Part"
 msgstr ""
 
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr ""
+
 #: part/templates/part/category.html:172
 msgid "Set category"
 msgstr ""
@@ -4902,46 +4892,46 @@ msgstr ""
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
 msgid "Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
 msgid "Add Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
@@ -5084,8 +5074,8 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
 #: templates/js/translated/model_renderers.js:192
 #: templates/js/translated/part.js:581 templates/js/translated/part.js:658
 msgid "Inactive"
@@ -5101,20 +5091,22 @@ msgstr ""
 msgid "This part is a variant of %(link)s"
 msgstr ""
 
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr ""
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr ""
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
 msgid "Can Build"
 msgstr ""
 
@@ -5133,7 +5125,7 @@ msgid "Latest Serial Number"
 msgstr ""
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr ""
 
@@ -5172,7 +5164,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -5291,7 +5283,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
 msgid "Supplier Cost"
 msgstr ""
 
@@ -5530,7 +5522,7 @@ msgstr ""
 msgid "Barcode associated with Stock Item"
 msgstr ""
 
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
 msgid "Label printing failed"
 msgstr ""
 
@@ -5770,12 +5762,12 @@ msgid "Stock Item Test Report"
 msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr ""
 
@@ -5796,7 +5788,7 @@ msgstr ""
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
 msgid "Date"
 msgstr ""
 
@@ -5815,7 +5807,7 @@ msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2589
 msgid "Serial"
 msgstr ""
 
@@ -5832,7 +5824,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr ""
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr ""
 
@@ -5894,7 +5886,7 @@ msgstr ""
 msgid "Packaging this stock item is stored in"
 msgstr ""
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr ""
 
@@ -5934,8 +5926,8 @@ msgstr ""
 msgid "Destination Sales Order"
 msgstr ""
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1816
 msgid "Expiry Date"
 msgstr ""
 
@@ -6215,11 +6207,11 @@ msgstr ""
 msgid "Installed Stock Items"
 msgstr ""
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
 msgid "Install Stock Item"
 msgstr ""
 
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
 msgid "Add Test Result"
 msgstr ""
 
@@ -6311,110 +6303,114 @@ msgstr ""
 msgid "Delete stock item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:244
-msgid "This stock item has not passed all required tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:252
-msgid "This stock item is allocated to Sales Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr ""
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:284
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:292
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1693
+msgid "No location set"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1832
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr ""
 
@@ -6486,8 +6482,8 @@ msgstr ""
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:198 users/models.py:40
 msgid "Stock Locations"
 msgstr ""
 
@@ -6539,7 +6535,7 @@ msgstr ""
 msgid "Child Items"
 msgstr ""
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr ""
 
@@ -6564,55 +6560,55 @@ msgstr ""
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr ""
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr ""
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr ""
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr ""
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr ""
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr ""
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr ""
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr ""
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr ""
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr ""
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr ""
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr ""
 
@@ -7331,9 +7327,9 @@ msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr ""
@@ -7602,14 +7598,14 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
 #: templates/js/translated/part.js:530
 #: templates/js/translated/table_filters.js:178
 msgid "Available"
@@ -7644,67 +7640,67 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
-#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
 msgid "No Response"
 msgstr ""
 
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
 msgid "No response from the InvenTree server"
 msgstr ""
 
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
 msgid "Error 400: Bad request"
 msgstr ""
 
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
 msgid "API request returned error code 400"
 msgstr ""
 
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
 msgid "Error 401: Not Authenticated"
 msgstr ""
 
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
 msgid "Authentication credentials not supplied"
 msgstr ""
 
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
 msgid "Error 403: Permission Denied"
 msgstr ""
 
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
 msgid "You do not have the required permissions to access this function"
 msgstr ""
 
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
 msgid "Error 404: Resource Not Found"
 msgstr ""
 
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
 msgid "The requested resource could not be located on the server"
 msgstr ""
 
-#: templates/js/translated/api.js:217
+#: templates/js/translated/api.js:262
 msgid "Error 405: Method Not Allowed"
 msgstr ""
 
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
 msgid "HTTP method not allowed at URL"
 msgstr ""
 
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
 msgid "Error 408: Timeout"
 msgstr ""
 
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
 msgid "Connection timeout while requesting data from server"
 msgstr ""
 
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
 msgid "Unhandled Error Code"
 msgstr ""
 
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
 msgid "Error code"
 msgstr ""
 
@@ -7765,7 +7761,7 @@ msgid "Unknown response from server"
 msgstr ""
 
 #: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "Invalid server response"
 msgstr ""
 
@@ -7847,12 +7843,12 @@ msgid "Download BOM Template"
 msgstr ""
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
 msgid "Format"
 msgstr ""
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr ""
 
@@ -7932,84 +7928,84 @@ msgstr ""
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
 msgid "Load BOM for subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
 msgid "No Stock Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
 msgid "Includes variant and substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
 #: templates/js/translated/part.js:690
 msgid "Includes variant stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
 msgid "Includes substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -8131,262 +8127,270 @@ msgstr ""
 msgid "Location not specified"
 msgstr ""
 
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
 msgid "No active build outputs found"
 msgstr ""
 
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
 msgid "Allocated Stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
 msgid "No tracked BOM items for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
 msgid "Completed Tests"
 msgstr ""
 
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
 msgid "No required tests for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
 msgid "Edit stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
 msgid "Delete stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
 msgid "Edit Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
 msgid "Remove Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
 msgid "Substitute parts available"
 msgstr ""
 
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
 msgid "Quantity Per"
 msgstr ""
 
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
 msgid "Insufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
 msgid "Sufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
 msgid "Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
 msgid "Build stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
 msgid "Order stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
 msgid "Allocate stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr ""
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
 msgid "You must select at least one part to allocate"
 msgstr ""
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
 msgid "All Parts Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
 msgid "All selected parts have been fully allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
 msgid "Select source location (leave blank to take from all locations)"
 msgstr ""
 
-#: templates/js/translated/build.js:2117
+#: templates/js/translated/build.js:2100
 msgid "Allocate Stock Items to Build Order"
 msgstr ""
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
 msgid "No matching stock locations"
 msgstr ""
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
 msgid "No matching stock items"
 msgstr ""
 
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
 msgid "Automatic Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
 msgstr ""
 
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
 msgid "If a location is specifed, stock will only be allocated from that location"
 msgstr ""
 
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
 msgstr ""
 
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
 msgstr ""
 
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
 msgid "Allocate Stock Items"
 msgstr ""
 
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
 msgid "Select"
 msgstr ""
 
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
 msgid "Build order is overdue"
 msgstr ""
 
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
 msgid "Progress"
 msgstr ""
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
 msgid "No information"
 msgstr ""
 
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
 msgid "No parts allocated for"
 msgstr ""
 
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
 msgid "Add Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
 msgid "Edit Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:342
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr ""
+
+#: templates/js/translated/company.js:595
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
 #: templates/js/translated/part.js:650
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
 #: templates/js/translated/part.js:654
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
 msgid "No supplier parts found"
 msgstr ""
 
@@ -8424,61 +8428,61 @@ msgstr ""
 msgid "Create filter"
 msgstr ""
 
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
 msgid "Action Prohibited"
 msgstr ""
 
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
 msgid "Create operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
 msgid "Update operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
 msgid "Delete operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
 msgid "View operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
 msgid "Keep this form open"
 msgstr ""
 
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
 msgid "Enter a valid number"
 msgstr ""
 
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
 #: templates/modals.html:43
 msgid "Form errors exist"
 msgstr ""
 
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
 msgid "No results found"
 msgstr ""
 
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
 msgid "Searching"
 msgstr ""
 
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
 msgid "Clear input"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "File Column"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "Field Name"
 msgstr ""
 
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
 msgid "Select Columns"
 msgstr ""
 
@@ -8552,62 +8556,62 @@ msgstr ""
 msgid "Select Label Template"
 msgstr ""
 
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
 msgid "Cancel"
 msgstr ""
 
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
 #: templates/modals.html:28 templates/modals.html:51
 msgid "Submit"
 msgstr ""
 
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
 msgid "Form Title"
 msgstr ""
 
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
 msgid "Waiting for server..."
 msgstr ""
 
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
 msgid "Show Error Information"
 msgstr ""
 
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
 msgid "Accept"
 msgstr ""
 
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
 msgid "Loading Data"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Invalid response from server"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Form data missing from server response"
 msgstr ""
 
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
 msgid "Error posting form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "JSON response missing form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
 msgid "Error 400: Bad Request"
 msgstr ""
 
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
 msgid "Server returned error code 400"
 msgstr ""
 
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
 msgid "Error requesting form data"
 msgstr ""
 
@@ -8665,377 +8669,381 @@ msgstr ""
 msgid "Notifications will load here"
 msgstr ""
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
 msgstr ""
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
 msgstr ""
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr ""
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr ""
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr ""
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr ""
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr ""
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr ""
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr ""
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr ""
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr ""
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr ""
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr ""
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
 msgid "Stock Status"
 msgstr ""
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr ""
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr ""
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr ""
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
 msgid "Order is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
 msgid "Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
 msgid "Duplicate Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
 msgid "Edit Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
 msgid "Delete Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1856
 msgid "No line items found"
 msgstr ""
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
 msgid "Total"
 msgstr ""
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
 msgid "Total Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
 msgid "Duplicate line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
 msgid "Edit line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
 msgid "Delete line item"
 msgstr ""
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
 msgid "Duplicate line"
 msgstr ""
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
 msgid "Edit line"
 msgstr ""
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
 msgid "Delete line"
 msgstr ""
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
 msgid "Duplicate Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
 msgid "Edit Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
 msgid "Delete Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2279
 msgid "No matching line"
 msgstr ""
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2392
 msgid "No sales orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2462
 msgid "Invalid Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2549
 msgid "Edit shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2552
 msgid "Complete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2557
 msgid "Delete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2577
 msgid "Edit Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2594
 msgid "Delete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2628
 msgid "No matching shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2638
 msgid "Shipment Reference"
 msgstr ""
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2662
 msgid "Not shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2668
 msgid "Tracking"
 msgstr ""
 
-#: templates/js/translated/order.js:2603
+#: templates/js/translated/order.js:2672
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:2841
 msgid "Add Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2892
 msgid "Confirm stock allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2893
 msgid "Allocate Stock Items to Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:3101
 msgid "No sales order allocations found"
 msgstr ""
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:3182
 msgid "Edit Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:3199
 msgid "Confirm Delete Operation"
 msgstr ""
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:3200
 msgid "Delete Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
 msgid "Shipped to customer"
 msgstr ""
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
 msgid "Stock location not specified"
 msgstr ""
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3623
 msgid "Allocate serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3629
 msgid "Purchase stock"
 msgstr ""
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
 msgid "Calculate price"
 msgstr ""
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3648
 msgid "Cannot be deleted as items have been shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3651
 msgid "Cannot be deleted as items have been allocated"
 msgstr ""
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3733
 msgid "Allocate Serial Numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3842
 msgid "Update Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3856
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:4092
 msgid "No matching lines"
 msgstr ""
 
@@ -9217,7 +9225,7 @@ msgid "No category"
 msgstr ""
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2238
 msgid "Display as list"
 msgstr ""
 
@@ -9225,7 +9233,7 @@ msgstr ""
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
 msgid "Display as tree"
 msgstr ""
 
@@ -9233,7 +9241,7 @@ msgstr ""
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
 msgid "Path"
 msgstr ""
 
@@ -9241,12 +9249,12 @@ msgstr ""
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
 msgid "Delete test result"
 msgstr ""
 
@@ -9367,11 +9375,11 @@ msgstr ""
 msgid "Sales Order(s) must be selected before printing report"
 msgstr ""
 
-#: templates/js/translated/search.js:307
+#: templates/js/translated/search.js:352
 msgid "Minimize results"
 msgstr ""
 
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:355
 msgid "Remove results"
 msgstr ""
 
@@ -9531,204 +9539,204 @@ msgstr ""
 msgid "Confirm stock adjustment"
 msgstr ""
 
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
 msgid "PASS"
 msgstr ""
 
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
 msgid "FAIL"
 msgstr ""
 
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
 msgid "NO RESULT"
 msgstr ""
 
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
 msgid "Pass test"
 msgstr ""
 
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
 msgid "Add test result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
 msgid "No test results found"
 msgstr ""
 
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
 msgid "Test Date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
 msgid "Edit Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
 msgid "Delete Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
 msgid "In production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
 msgid "Installed in Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
 msgid "Assigned to Sales Order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
 msgid "No stock location set"
 msgstr ""
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1712
 msgid "Stock item is in production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1717
 msgid "Stock item assigned to sales order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1720
 msgid "Stock item assigned to customer"
 msgstr ""
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr ""
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr ""
-
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
 msgid "Serialized stock item has been allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
 msgid "Stock item has been fully allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
 msgid "Stock item has been partially allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1730
 msgid "Stock item has been installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1734
+msgid "Stock item has expired"
+msgstr ""
+
+#: templates/js/translated/stock.js:1736
+msgid "Stock item will expire soon"
+msgstr ""
+
+#: templates/js/translated/stock.js:1743
 msgid "Stock item has been rejected"
 msgstr ""
 
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1745
 msgid "Stock item is lost"
 msgstr ""
 
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1747
 msgid "Stock item is destroyed"
 msgstr ""
 
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1751
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr ""
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1802
 msgid "Stocktake"
 msgstr ""
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1884
 msgid "Supplier part not specified"
 msgstr ""
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1922
 msgid "No stock items matching query"
 msgstr ""
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2095
 msgid "Set Stock Status"
 msgstr ""
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2109
 msgid "Select Status Code"
 msgstr ""
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2110
 msgid "Status code must be selected"
 msgstr ""
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2365
 msgid "Details"
 msgstr ""
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2381
 msgid "Part information unavailable"
 msgstr ""
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2403
 msgid "Location no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2422
 msgid "Purchase order no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
 msgid "Customer no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2459
 msgid "Stock item no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2482
 msgid "Added"
 msgstr ""
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2490
 msgid "Removed"
 msgstr ""
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2566
 msgid "No installed items"
 msgstr ""
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
 msgid "Uninstall Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2666
 msgid "Select stock item to uninstall"
 msgstr ""
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2687
 msgid "Install another stock item into this item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2688
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr ""
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2690
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2691
 msgid "The Stock Item is currently available in stock"
 msgstr ""
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2692
 msgid "The Stock Item is not already installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2693
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr ""
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2706
 msgid "Select part to install"
 msgstr ""
 
@@ -9960,69 +9968,81 @@ msgstr ""
 msgid "Purchasable"
 msgstr ""
 
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr ""
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr ""
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
 msgid "Export Table Data"
 msgstr ""
 
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
 msgid "Select File Format"
 msgstr ""
 
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
 msgid "Loading data"
 msgstr ""
 
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
 msgid "rows per page"
 msgstr ""
 
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
 msgid "Showing all rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "Showing"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "to"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "of"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
 #: templates/search.html:8 templates/search_form.html:6
 #: templates/search_form.html:7
 msgid "Search"
 msgstr ""
 
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
 msgid "No matching results"
 msgstr ""
 
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
 msgid "Hide/Show pagination"
 msgstr ""
 
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
 msgid "Refresh"
 msgstr ""
 
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
 msgid "Toggle"
 msgstr ""
 
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
 msgid "Columns"
 msgstr ""
 
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
 msgid "All"
 msgstr ""
 
diff --git a/InvenTree/locale/hu/LC_MESSAGES/django.po b/InvenTree/locale/hu/LC_MESSAGES/django.po
index 438046a91b..d8f48e45b9 100644
--- a/InvenTree/locale/hu/LC_MESSAGES/django.po
+++ b/InvenTree/locale/hu/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
-"PO-Revision-Date: 2022-05-24 01:42\n"
+"POT-Creation-Date: 2022-05-28 23:41+0000\n"
+"PO-Revision-Date: 2022-05-29 01:47\n"
 "Last-Translator: \n"
 "Language-Team: Hungarian\n"
 "Language: hu_HU\n"
@@ -21,7 +21,7 @@ msgstr ""
 msgid "API endpoint not found"
 msgstr "API funkciót nem találom"
 
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
 msgid "Error details can be found in the admin panel"
 msgstr "A hiba részleteit megtalálod az admin panelen"
 
@@ -30,7 +30,7 @@ msgid "Enter date"
 msgstr "Dátum megadása"
 
 #: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
 msgid "Confirm"
 msgstr "Megerősítés"
 
@@ -79,7 +79,7 @@ msgstr "Mindig ugyanazt az email címet kell beírni."
 msgid "Duplicate serial: {sn}"
 msgstr "Duplikált sorozatszám: {sn}"
 
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
 msgid "Invalid quantity provided"
 msgstr "Nem megfelelő mennyiség"
 
@@ -134,10 +134,12 @@ msgid "Select file to attach"
 msgstr "Válaszd ki a mellekelni kívánt fájlt"
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:139 order/models.py:1273
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr "Link"
 
@@ -159,7 +161,7 @@ msgstr "Leírás, bővebb infó"
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2513
 msgid "User"
 msgstr "Felhasználó"
 
@@ -205,9 +207,10 @@ msgstr "Érvénytelen választás"
 #: templates/InvenTree/settings/plugin.html:132
 #: templates/InvenTree/settings/plugin_settings.html:23
 #: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2283
 msgid "Name"
 msgstr "Név"
 
@@ -216,22 +219,22 @@ msgstr "Név"
 #: company/models.py:575 company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
 #: part/templates/part/part_base.html:167
 #: part/templates/part/set_category.html:14 report/models.py:182
 #: report/models.py:547 report/models.py:586
 #: report/templates/report/inventree_build_order_base.html:118
 #: stock/templates/stock/location.html:103
 #: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
 msgid "Description"
 msgstr "Leírás"
 
@@ -406,7 +409,7 @@ msgid "InvenTree system health checks failed"
 msgstr "InvenTree rendszer állapotának ellenőrzése sikertelen"
 
 #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
 msgid "Pending"
 msgstr "Függőben"
 
@@ -414,141 +417,145 @@ msgstr "Függőben"
 msgid "Placed"
 msgstr "Kiküldve"
 
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
 #: order/templates/order/order_base.html:134
 #: order/templates/order/sales_order_base.html:133
 msgid "Complete"
 msgstr "Kész"
 
 #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
 msgid "Cancelled"
 msgstr "Törölve"
 
 #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
 msgid "Lost"
 msgstr "Elveszett"
 
 #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
 msgid "Returned"
 msgstr "Visszaküldve"
 
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
 msgid "Shipped"
 msgstr "Kiszállítva"
 
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
 msgid "OK"
 msgstr "Rendben"
 
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
 msgid "Attention needed"
 msgstr "Ellenőrizendő"
 
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
 msgid "Damaged"
 msgstr "Sérült"
 
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
 msgid "Destroyed"
 msgstr "Megsemmisült"
 
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
 msgid "Rejected"
 msgstr "Elutasított"
 
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
 msgid "Legacy stock tracking entry"
 msgstr "Örökölt készlet követési bejegyzés"
 
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
 msgid "Stock item created"
 msgstr "Készlet tétel létrehozva"
 
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
 msgid "Edited stock item"
 msgstr "Szerkeszett készlet tétel"
 
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
 msgid "Assigned serial number"
 msgstr "Hozzárendelt sorozatszám"
 
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
 msgid "Stock counted"
 msgstr "Készlet leleltározva"
 
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
 msgid "Stock manually added"
 msgstr "Készlet manuálisan hozzáadva"
 
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
 msgid "Stock manually removed"
 msgstr "Készlet manuálisan elvéve"
 
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
 msgid "Location changed"
 msgstr "Hely megváltozott"
 
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
 msgid "Installed into assembly"
 msgstr "Gyártmányba beépült"
 
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
 msgid "Removed from assembly"
 msgstr "Gyártmányból eltávolítva"
 
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
 msgid "Installed component item"
 msgstr "Beépült összetevő tétel"
 
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
 msgid "Removed component item"
 msgstr "Eltávolított összetevő tétel"
 
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
 msgid "Split from parent item"
 msgstr "Szülő tételből szétválasztva"
 
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
 msgid "Split child item"
 msgstr "Szétválasztott gyermek tétel"
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
 msgid "Merged stock items"
 msgstr "Összevont készlet tétel"
 
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
 msgid "Converted to variant"
 msgstr "Alkatrészváltozattá alakítva"
 
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
 msgid "Sent to customer"
 msgstr "Vevőnek elküldve"
 
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
 msgid "Returned from customer"
 msgstr "Vevőtől visszaérkezett"
 
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
 msgid "Build order output created"
 msgstr "Gyártási utasítás kimenete elkészült"
 
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
 msgid "Build order output completed"
 msgstr "Gyártási utasítás kimenete kész"
 
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
 msgid "Consumed by build order"
 msgstr "Gyártásra felhasználva"
 
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
 msgid "Received against purchase order"
 msgstr "Megrendelésre érkezett"
 
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
 msgid "Production"
 msgstr "Folyamatban"
 
@@ -637,15 +644,15 @@ msgstr "Gyártási utasítások"
 msgid "Build Order Reference"
 msgstr "Gyártási utasítás azonosító"
 
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
 #: part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
 msgid "Reference"
 msgstr "Azonosító"
 
@@ -664,7 +671,7 @@ msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve"
 
 #: build/models.py:225 build/templates/build/build_base.html:77
 #: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
 #: part/models.py:2303 part/models.py:2319 part/models.py:2338
 #: part/models.py:2355 part/models.py:2457 part/models.py:2579
 #: part/models.py:2669 part/models.py:2760 part/models.py:3050
@@ -679,19 +686,21 @@ msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve"
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
 #: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
 msgid "Part"
 msgstr "Alkatrész"
 
@@ -708,7 +717,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr "Vevői rendelés amihez ez a gyártás hozzá van rendelve"
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
 msgid "Source Location"
 msgstr "Forrás hely"
 
@@ -749,7 +758,7 @@ msgid "Build status code"
 msgstr "Gyártás státusz kód"
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr "Batch kód"
 
@@ -757,12 +766,12 @@ msgstr "Batch kód"
 msgid "Batch code for this build output"
 msgstr "Batch kód a gyártás kimenetéhez"
 
-#: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
 msgid "Creation Date"
 msgstr "Létrehozás dátuma"
 
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
 msgid "Target completion date"
 msgstr "Befejezés cél dátuma"
 
@@ -770,8 +779,8 @@ msgstr "Befejezés cél dátuma"
 msgid "Target date for build completion. Build will be overdue after this date."
 msgstr "Cél dátum a gyártás befejezéséhez. Ez után késettnek számít majd."
 
-#: build/models.py:300 order/models.py:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
 msgid "Completion Date"
 msgstr "Elkészítés dátuma"
 
@@ -779,7 +788,7 @@ msgstr "Elkészítés dátuma"
 msgid "completed by"
 msgstr "elkészítette"
 
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
 msgid "Issued by"
 msgstr "Kiállította"
 
@@ -788,11 +797,11 @@ msgid "User who issued this build order"
 msgstr "Felhasználó aki ezt a gyártási utasítást kiállította"
 
 #: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
 msgid "Responsible"
 msgstr "Felelős"
 
@@ -804,14 +813,14 @@ msgstr "Felhasználó aki felelős ezért a gyártási utasításért"
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr "Külső link"
 
 #: build/models.py:334 build/serializers.py:390
 #: build/templates/build/sidebar.html:21 company/models.py:134
 #: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
 #: order/templates/order/po_sidebar.html:11
 #: order/templates/order/so_sidebar.html:17 part/models.py:983
 #: part/templates/part/part_sidebar.html:59
@@ -820,11 +829,11 @@ msgstr "Külső link"
 #: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
 msgid "Notes"
 msgstr "Megjegyzések"
 
@@ -857,7 +866,7 @@ msgstr "A lefoglalt mennyiség ({q}) nem lépheti túl a szabad készletet ({a})
 msgid "Stock item is over-allocated"
 msgstr "Készlet túlfoglalva"
 
-#: build/models.py:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1413
 msgid "Allocation quantity must be greater than zero"
 msgstr "Lefoglalt mennyiségnek nullánál többnek kell lennie"
 
@@ -869,8 +878,8 @@ msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen"
 msgid "Selected stock item not found in BOM"
 msgstr "Kiválasztott készlet tétel nem található az alkatrészjegyzékben"
 
-#: build/models.py:1375 stock/templates/stock/item_base.html:335
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
 #: templates/navbar.html:38
 msgid "Build"
 msgstr "Gyártás"
@@ -879,18 +888,18 @@ msgstr "Gyártás"
 msgid "Build to allocate parts"
 msgstr "Gyártás amihez készletet foglaljunk"
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2449
 msgid "Stock Item"
 msgstr "Készlet tétel"
 
@@ -902,10 +911,10 @@ msgstr "Forrás készlet tétel"
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_build_order_base.html:114
@@ -913,25 +922,24 @@ msgstr "Forrás készlet tétel"
 #: 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
 msgid "Quantity"
 msgstr "Mennyiség"
 
@@ -948,7 +956,7 @@ msgid "Destination stock item"
 msgstr "Cél készlet tétel"
 
 #: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
 msgid "Build Output"
 msgstr "Gyártás kimenet"
 
@@ -972,7 +980,7 @@ msgstr "Ez a gyártási kimenet nincs teljesen lefoglalva"
 msgid "Enter quantity for build output"
 msgstr "Add meg a mennyiséget a gyártás kimenetéhez"
 
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
 #: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
 #: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
 #: stock/serializers.py:294
@@ -987,8 +995,8 @@ msgstr "Egész számú mennyiség szükséges az egyedi követésre kötelezett
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr "Egész számú mennyiség szükséges, mivel az alkatrészjegyzék egyedi követésre kötelezett alkatrészeket tartalmaz"
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr "Sorozatszámok"
@@ -1015,15 +1023,15 @@ msgstr "A gyártási kimenetek listáját meg kell adni"
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
 msgid "Location"
 msgstr "Hely"
 
@@ -1032,12 +1040,12 @@ msgid "Location for completed build outputs"
 msgstr "A kész gyártási kimenetek helye"
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: build/templates/build/detail.html:62 order/models.py:663
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
 msgid "Status"
 msgstr "Állapot"
 
@@ -1119,7 +1127,7 @@ msgstr "bom_item.part ugyanarra az alkatrészre kell mutasson mint a gyártási
 msgid "Item must be in stock"
 msgstr "A tételnek kell legyen készlete"
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr "Rendelkezésre álló mennyiség ({q}) túllépve"
@@ -1136,7 +1144,7 @@ msgstr "Gyártási kimenetet nem lehet megadni a követésre kötelezett alkatr
 msgid "This stock item has already been allocated to this build output"
 msgstr "Ez a készlet tétel már le lett foglalva ehhez a gyártási kimenethez"
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr "A lefoglalandó tételeket meg kell adni"
 
@@ -1234,13 +1242,13 @@ msgid "Stock has not been fully allocated to this Build Order"
 msgstr "Még nincs lefoglalva a szükséges készlet"
 
 #: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr "Cél dátum"
 
@@ -1267,14 +1275,14 @@ msgid "Completed"
 msgstr "Kész"
 
 #: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2436
 msgid "Sales Order"
 msgstr "Vevői rendelés"
 
@@ -1309,8 +1317,8 @@ msgstr "Készlet forrás"
 msgid "Stock can be taken from any available location."
 msgstr "Készlet bármely rendelkezésre álló helyről felhasználható."
 
-#: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
 msgid "Destination"
 msgstr "Cél"
 
@@ -1323,11 +1331,11 @@ msgid "Allocated Parts"
 msgstr "Lefoglalt alkatrészek"
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
-#: templates/js/translated/build.js:1184
+#: stock/templates/stock/item_base.html:170
+#: templates/js/translated/build.js:1179
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1336,7 +1344,7 @@ msgstr "Batch"
 #: build/templates/build/detail.html:126
 #: order/templates/order/order_base.html:149
 #: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
 msgid "Created"
 msgstr "Létrehozva"
 
@@ -1356,7 +1364,7 @@ msgstr "Alárendelt gyártások"
 msgid "Allocate Stock to Build"
 msgstr "Készlet foglalása gyártáshoz"
 
-#: build/templates/build/detail.html:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
 msgid "Unallocate stock"
 msgstr "Készlet felszabadítása"
 
@@ -1386,8 +1394,8 @@ msgstr "Szükséges alkatrészek rendelése"
 
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: company/templates/company/detail.html:85
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr "Alkatrész rendelés"
 
@@ -1462,8 +1470,8 @@ msgid "Completed Build Outputs"
 msgstr "Befejezett gyártási kimenetek"
 
 #: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
 #: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:82
 #: order/templates/order/sales_order_detail.html:129
@@ -1477,11 +1485,11 @@ msgstr "Mellékletek"
 msgid "Build Notes"
 msgstr "Gyártási megjegyzések"
 
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
 msgid "Allocation Complete"
 msgstr "Lefoglalás kész"
 
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
 msgid "All untracked stock items have been allocated"
 msgstr "Az összes nem követett készlet lefoglalásra került"
 
@@ -1493,18 +1501,6 @@ msgstr "Új gyártási utasítás"
 msgid "Print Build Orders"
 msgstr "Gyártási utasítások nyomtatása"
 
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr "Naptár nézet megjelenítése"
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr "Lista nézet megjenítése"
-
 #: build/templates/build/sidebar.html:5
 msgid "Build Order Details"
 msgstr "Gyártási utasítás részletei"
@@ -1728,7 +1724,7 @@ msgstr "Sablon"
 msgid "Parts are templates by default"
 msgstr "Alkatrészek alapból sablon alkatrészek legyenek"
 
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
 #: templates/js/translated/table_filters.js:168
 #: templates/js/translated/table_filters.js:460
 msgid "Assembly"
@@ -2414,7 +2410,7 @@ msgid "Price break quantity"
 msgstr "Árlépcső mennyiség"
 
 #: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: company/templates/company/supplier_part.html:263 order/models.py:975
 #: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
 msgid "Price"
 msgstr "Ár"
@@ -2557,7 +2553,7 @@ msgstr "A cég leírása"
 
 #: company/models.py:104 company/templates/company/company_base.html:100
 #: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
 msgid "Website"
 msgstr "Weboldal"
 
@@ -2652,10 +2648,11 @@ msgstr "Válassz alkatrészt"
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: stock/templates/stock/item_base.html:212
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
 #: templates/js/translated/table_filters.js:411
 msgid "Manufacturer"
 msgstr "Gyártó"
@@ -2666,8 +2663,10 @@ msgstr "Gyártó kiválasztása"
 
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr "MPN"
@@ -2687,7 +2686,7 @@ msgstr "Gyártói alkatrész leírása"
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr "Gyártói alkatrész"
 
@@ -2697,8 +2696,9 @@ msgstr "Paraméter neve"
 
 #: company/models.py:427
 #: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
 msgid "Value"
 msgstr "Érték"
 
@@ -2709,7 +2709,7 @@ msgstr "Paraméter értéke"
 #: company/models.py:434 part/models.py:940 part/models.py:2549
 #: part/templates/part/part_base.html:280
 #: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
 msgid "Units"
 msgstr "Mértékegységek"
 
@@ -2722,11 +2722,12 @@ msgid "Linked manufacturer part must reference the same base part"
 msgstr "Kapcsolódó gyártói alkatrésznek ugyanarra a kiindulási alkatrészre kell hivatkoznia"
 
 #: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: stock/templates/stock/item_base.html:229
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2737,8 +2738,9 @@ msgid "Select supplier"
 msgstr "Beszállító kiválasztása"
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
 msgid "SKU"
 msgstr "SKU"
 
@@ -2774,8 +2776,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr "Minimális díj (pl. tárolási díj)"
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
 msgid "Packaging"
 msgstr "Csomagolás"
 
@@ -2805,12 +2807,12 @@ msgstr "Pénznem kódja"
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
 msgid "Company"
 msgstr "Cég"
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr "Beszerzési rendelés létrehozása"
 
@@ -2823,7 +2825,7 @@ msgid "Edit company information"
 msgstr "Cég adatainak szerkesztése"
 
 #: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
 msgid "Edit Company"
 msgstr "Cég szerkesztése"
 
@@ -2846,12 +2848,12 @@ msgstr "Új kép feltöltése"
 msgid "Download image from URL"
 msgstr "Kép letöltése URL-ről"
 
-#: company/templates/company/company_base.html:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr "Vevő"
@@ -2870,7 +2872,7 @@ msgid "Upload Image"
 msgstr "Kép feltöltése"
 
 #: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
+#: company/templates/company/manufacturer_part_sidebar.html:7
 #: templates/InvenTree/search.html:118
 msgid "Supplier Parts"
 msgstr "Beszállítói alkatrészek"
@@ -2885,28 +2887,19 @@ msgstr "Új beszállítói alkatrész létrehozása"
 msgid "New Supplier Part"
 msgstr "Új beszállítói alkatrész"
 
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr "Opciók"
-
 #: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
 #: part/templates/part/category.html:176
 msgid "Order parts"
 msgstr "Alkatrész rendelés"
 
 #: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
 msgid "Delete parts"
 msgstr "Alkatrész törlés"
 
 #: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
 msgid "Delete Parts"
 msgstr "Alkatrész törlés"
 
@@ -2918,88 +2911,76 @@ msgstr "Gyártói alkatrészek"
 msgid "Create new manufacturer part"
 msgstr "Új gyártói alkatrész létrehozása"
 
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
 msgid "New Manufacturer Part"
 msgstr "Új gyártói alkatrész"
 
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
 msgid "Supplier Stock"
 msgstr "Beszállítói készlet"
 
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
 #: company/templates/company/sidebar.html:12
 #: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
 #: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:235 templates/navbar.html:50
 #: users/models.py:43
 msgid "Purchase Orders"
 msgstr "Beszerzési rendelések"
 
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
 #: order/templates/order/purchase_orders.html:17
 msgid "Create new purchase order"
 msgstr "Beszerzési rendelés létrehozása"
 
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr "Új beszerzési rendelés"
 
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
 #: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
 #: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
 #: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:259 templates/navbar.html:61
 #: users/models.py:44
 msgid "Sales Orders"
 msgstr "Vevői rendelések"
 
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
 #: order/templates/order/sales_orders.html:20
 msgid "Create new sales order"
 msgstr "Vevői rendelés létrehozása"
 
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
 #: order/templates/order/sales_orders.html:21
 msgid "New Sales Order"
 msgstr "Új vevői rendelés"
 
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
 msgid "Assigned Stock"
 msgstr "Hozzárendelt készlet"
 
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
 msgid "Company Notes"
 msgstr "Cég megjegyzések"
 
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr "Töröljük a beszállítói alkatrészeket?"
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr "Az összes kiválasztott beszállítói alkatrész törölve lesz"
-
 #: company/templates/company/index.html:8
 msgid "Supplier List"
 msgstr "Beszállítók listája"
 
 #: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
 #: templates/navbar.html:49
 msgid "Manufacturers"
 msgstr "Gyártók"
@@ -3012,12 +2993,12 @@ msgid "Order part"
 msgstr "Alkatrész rendelés"
 
 #: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
 msgid "Edit manufacturer part"
 msgstr "Gyártói alkatrész szerkesztése"
 
 #: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
 msgid "Delete manufacturer part"
 msgstr "Gyártói alkatrész törlése"
 
@@ -3033,55 +3014,46 @@ msgstr "Nincs elérhető gyártói információ"
 #: company/templates/company/manufacturer_part.html:119
 #: company/templates/company/supplier_part.html:15 company/views.py:41
 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
 msgid "Suppliers"
 msgstr "Beszállítók"
 
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
 #: part/templates/part/detail.html:363
 msgid "Delete supplier parts"
 msgstr "Beszállítói alkatrész törlése"
 
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
 msgid "Delete"
 msgstr "Törlés"
 
-#: company/templates/company/manufacturer_part.html:164
+#: company/templates/company/manufacturer_part.html:166
 #: company/templates/company/manufacturer_part_sidebar.html:5
 #: part/templates/part/category_sidebar.html:19
 #: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8
 msgid "Parameters"
 msgstr "Paraméterek"
 
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
 #: part/templates/part/detail.html:184
 #: templates/InvenTree/settings/category.html:12
 #: templates/InvenTree/settings/part.html:66
 msgid "New Parameter"
 msgstr "Új paraméter"
 
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
 msgid "Delete parameters"
 msgstr "Paraméterek törlése"
 
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
 msgid "Add Parameter"
 msgstr "Paraméter hozzáadása"
 
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr "A kiválasztott paraméterek törlésre kerülnek"
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr "Paraméterek törlése"
-
 #: company/templates/company/sidebar.html:6
 msgid "Manufactured Parts"
 msgstr "Gyártott alkatrészek"
@@ -3100,19 +3072,19 @@ msgstr "Hozzárendelt készlet tételek"
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
 msgid "Supplier Part"
 msgstr "Beszállítói alkatrész"
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
 msgid "Edit supplier part"
 msgstr "Beszállítói alkatrész szerkesztése"
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
 msgid "Delete supplier part"
 msgstr "Beszállítói alkatrész törlése"
 
@@ -3187,11 +3159,11 @@ msgstr "Utoljára módosítva"
 #: part/templates/part/part_sidebar.html:14
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
 #: templates/InvenTree/settings/sidebar.html:43
 #: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
 #: templates/navbar.html:31
 msgid "Stock"
 msgstr "Készlet"
@@ -3217,8 +3189,8 @@ msgstr "Árazás"
 #: stock/templates/stock/location.html:161
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
+#: templates/js/translated/stock.js:2307 users/models.py:41
 msgid "Stock Items"
 msgstr "Készlet tételek"
 
@@ -3230,7 +3202,7 @@ msgstr "Új beszállító"
 msgid "New Manufacturer"
 msgstr "Új gyártó"
 
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
 #: templates/navbar.html:60
 msgid "Customers"
 msgstr "Vevők"
@@ -3239,7 +3211,7 @@ msgstr "Vevők"
 msgid "New Customer"
 msgstr "Új vevő"
 
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:212
 msgid "Companies"
 msgstr "Cégek"
 
@@ -3329,305 +3301,313 @@ msgstr "Lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok"
 msgid "Part query filters (comma-separated value of key=value pairs)"
 msgstr "Alkatrész lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok)"
 
-#: order/models.py:130
+#: order/models.py:137
 msgid "Order description"
 msgstr "Rendelés leírása"
 
-#: order/models.py:132
+#: order/models.py:139 order/models.py:1274
 msgid "Link to external page"
 msgstr "Link külső weboldalra"
 
-#: order/models.py:140
+#: order/models.py:147
 msgid "Created By"
 msgstr "Készítette"
 
-#: order/models.py:147
+#: order/models.py:154
 msgid "User or group responsible for this order"
 msgstr "Felhasználó vagy csoport aki felelőse ennek a rendelésnek"
 
-#: order/models.py:152
+#: order/models.py:159
 msgid "Order notes"
 msgstr "Rendelés jegyzetek"
 
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
 msgid "Order reference"
 msgstr "Rendelés azonosító"
 
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
 msgid "Purchase order status"
 msgstr "Beszerzési rendelés állapota"
 
-#: order/models.py:253
+#: order/models.py:311
 msgid "Company from which the items are being ordered"
 msgstr "Cég akitől a tételek beszerzésre kerülnek"
 
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
 msgid "Supplier Reference"
 msgstr "Beszállítói azonosító"
 
-#: order/models.py:256
+#: order/models.py:314
 msgid "Supplier order reference code"
 msgstr "Beszállítói rendelés azonosító kód"
 
-#: order/models.py:263
+#: order/models.py:321
 msgid "received by"
 msgstr "érkeztette"
 
-#: order/models.py:268
+#: order/models.py:326
 msgid "Issue Date"
 msgstr "Kiállítás dátuma"
 
-#: order/models.py:269
+#: order/models.py:327
 msgid "Date order was issued"
 msgstr "Kiállítás dátuma"
 
-#: order/models.py:274
+#: order/models.py:332
 msgid "Target Delivery Date"
 msgstr "Várható beérkezés"
 
-#: order/models.py:275
+#: order/models.py:333
 msgid "Expected date for order delivery. Order will be overdue after this date."
 msgstr "Várt teljesítési dátuma a megrendelésnek. Ezután már késésben lévőnek számít majd."
 
-#: order/models.py:281
+#: order/models.py:339
 msgid "Date order was completed"
 msgstr "Rendelés teljesítési dátuma"
 
-#: order/models.py:310
+#: order/models.py:368
 msgid "Part supplier must match PO supplier"
 msgstr "Az alkatrész beszállítója meg kell egyezzen a beszerzési rendelés beszállítójával"
 
-#: order/models.py:456
+#: order/models.py:514
 msgid "Quantity must be a positive number"
 msgstr "Mennyiség pozitív kell legyen"
 
-#: order/models.py:601
+#: order/models.py:659
 msgid "Company to which the items are being sold"
 msgstr "Cég akinek a tételek értékesítésre kerülnek"
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer Reference "
 msgstr "Vevői azonosító "
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer order reference code"
 msgstr "Megrendelés azonosító kódja a vevőnél"
 
-#: order/models.py:612
+#: order/models.py:670
 msgid "Target date for order completion. Order will be overdue after this date."
 msgstr "Cél dátum a rendelés teljesítéséhez. Ez után számít majd késettnek."
 
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
 msgid "Shipment Date"
 msgstr "Kiszállítás dátuma"
 
-#: order/models.py:622
+#: order/models.py:680
 msgid "shipped by"
 msgstr "szállította"
 
-#: order/models.py:688
+#: order/models.py:746
 msgid "Order cannot be completed as no parts have been assigned"
 msgstr "A rendelés nem teljesíthető mivel nincs hozzárendelve alkatrész"
 
-#: order/models.py:692
+#: order/models.py:750
 msgid "Only a pending order can be marked as complete"
 msgstr "Csak függő rendelés jelölhető késznek"
 
-#: order/models.py:695
+#: order/models.py:753
 msgid "Order cannot be completed as there are incomplete shipments"
 msgstr "A rendelés nem jelölhető késznek mivel nem teljesített szállítások vannak"
 
-#: order/models.py:698
+#: order/models.py:756
 msgid "Order cannot be completed as there are incomplete line items"
 msgstr "A rendelés nem jelölhető késznek mivel nem teljesített sortételek vannak"
 
-#: order/models.py:878
+#: order/models.py:936
 msgid "Item quantity"
 msgstr "Tétel mennyiség"
 
-#: order/models.py:884
+#: order/models.py:942
 msgid "Line item reference"
 msgstr "Sortétel azonosító"
 
-#: order/models.py:886
+#: order/models.py:944
 msgid "Line item notes"
 msgstr "Sortétel megjegyzései"
 
-#: order/models.py:891
+#: order/models.py:949
 msgid "Target shipping date for this line item"
 msgstr "Cél szállítási dátuma ennek a sortételnek"
 
-#: order/models.py:909
+#: order/models.py:967
 msgid "Context"
 msgstr "Kontextus"
 
-#: order/models.py:910
+#: order/models.py:968
 msgid "Additional context for this line"
 msgstr "További kontextus ehhez a sorhoz"
 
-#: order/models.py:918
+#: order/models.py:976
 msgid "Unit price"
 msgstr "Egységár"
 
-#: order/models.py:951
+#: order/models.py:1009
 msgid "Supplier part must match supplier"
 msgstr "Beszállítói alkatrésznek egyeznie kell a beszállítóval"
 
-#: order/models.py:958
+#: order/models.py:1016
 msgid "deleted"
 msgstr "törölve"
 
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
 msgid "Order"
 msgstr "Rendelés"
 
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
 msgid "Purchase Order"
 msgstr "Beszerzési rendelés"
 
-#: order/models.py:984
+#: order/models.py:1042
 msgid "Supplier part"
 msgstr "Beszállítói alkatrész"
 
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
 msgstr "Beérkezett"
 
-#: order/models.py:992
+#: order/models.py:1050
 msgid "Number of items received"
 msgstr "Érkezett tételek száma"
 
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1900
 msgid "Purchase Price"
 msgstr "Beszerzési ár"
 
-#: order/models.py:1000
+#: order/models.py:1058
 msgid "Unit purchase price"
 msgstr "Beszerzési egységár"
 
-#: order/models.py:1008
+#: order/models.py:1066
 msgid "Where does the Purchaser want this item to be stored?"
 msgstr "Mit szeretne a vevő hol tároljuk ezt az alkatrészt?"
 
-#: order/models.py:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
 #: part/templates/part/prices.html:119 part/templates/part/prices.html:288
 msgid "Sale Price"
 msgstr "Eladási ár"
 
-#: order/models.py:1079
+#: order/models.py:1137
 msgid "Unit sale price"
 msgstr "Eladási egységár"
 
-#: order/models.py:1084
+#: order/models.py:1142
 msgid "Shipped quantity"
 msgstr "Szállított mennyiség"
 
-#: order/models.py:1171
+#: order/models.py:1229
 msgid "Date of shipment"
 msgstr "Szállítás dátuma"
 
-#: order/models.py:1178
+#: order/models.py:1236
 msgid "Checked By"
 msgstr "Ellenőrizte"
 
-#: order/models.py:1179
+#: order/models.py:1237
 msgid "User who checked this shipment"
 msgstr "Felhasználó aki ellenőrizte ezt a szállítmányt"
 
-#: order/models.py:1187
+#: order/models.py:1245
 msgid "Shipment number"
 msgstr "Szállítmány száma"
 
-#: order/models.py:1194
+#: order/models.py:1252
 msgid "Shipment notes"
 msgstr "Szállítás megjegyzései"
 
-#: order/models.py:1201
+#: order/models.py:1259
 msgid "Tracking Number"
 msgstr "Nyomkövetési szám"
 
-#: order/models.py:1202
+#: order/models.py:1260
 msgid "Shipment tracking information"
 msgstr "Szállítmány nyomkövetési információ"
 
-#: order/models.py:1213
+#: order/models.py:1267
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1268
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1285
 msgid "Shipment has already been sent"
 msgstr "Szállítmány már elküldve"
 
-#: order/models.py:1216
+#: order/models.py:1288
 msgid "Shipment has no allocated stock items"
 msgstr "Szállítmány nem tartalmaz foglalt készlet tételeket"
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1395 order/models.py:1397
 msgid "Stock item has not been assigned"
 msgstr "Készlet tétel nincs hozzárendelve"
 
-#: order/models.py:1317
+#: order/models.py:1401
 msgid "Cannot allocate stock item to a line with a different part"
 msgstr "Nem foglalható készlet egy másik fajta alkatrész sortételéhez"
 
-#: order/models.py:1319
+#: order/models.py:1403
 msgid "Cannot allocate stock to a line without a part"
 msgstr "Nem foglalható készlet egy olyan sorhoz amiben nincs alkatrész"
 
-#: order/models.py:1322
+#: order/models.py:1406
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr "A lefoglalandó mennyiség nem haladhatja meg a készlet mennyiségét"
 
-#: order/models.py:1326
+#: order/models.py:1410
 msgid "StockItem is over-allocated"
 msgstr "Készlet tétel túlfoglalva"
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1416 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen"
 
-#: order/models.py:1335
+#: order/models.py:1419
 msgid "Sales order does not match shipment"
 msgstr "Vevői rendelés nem egyezik a szállítással"
 
-#: order/models.py:1336
+#: order/models.py:1420
 msgid "Shipment does not match sales order"
 msgstr "Szállítás nem egyezik a vevői rendeléssel"
 
-#: order/models.py:1344
+#: order/models.py:1428
 msgid "Line"
 msgstr "Sor"
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr "Szállítmány"
 
-#: order/models.py:1353
+#: order/models.py:1437
 msgid "Sales order shipment reference"
 msgstr "Vevői rendelés szállítás azonosító"
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr "Tétel"
 
-#: order/models.py:1366
+#: order/models.py:1450
 msgid "Select stock item to allocate"
 msgstr "Válaszd ki a foglalásra szánt készlet tételt"
 
-#: order/models.py:1369
+#: order/models.py:1453
 msgid "Enter stock allocation quantity"
 msgstr "Készlet foglalási mennyiség megadása"
 
@@ -3663,7 +3643,7 @@ msgstr "A beszállítónak egyeznie kell a beszerzési rendelésben lévővel"
 msgid "Purchase order must match supplier"
 msgstr "A beszerzési rendelésnek egyeznie kell a beszállítóval"
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr "Sortétel"
 
@@ -3675,11 +3655,11 @@ msgstr "Sortétel nem egyezik a beszerzési megrendeléssel"
 msgid "Select destination location for received items"
 msgstr "Válassz cél helyet a beérkezett tételeknek"
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr "Írd be a batch kódját a beérkezett tételeknek"
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr "Írd be a sorozatszámokat a beérkezett tételekhez"
 
@@ -3715,35 +3695,35 @@ msgstr "Megadott vonalkódoknak egyedieknek kel lenniük"
 msgid "Sale price currency"
 msgstr "Eladási ár pénzneme"
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr "Nincsenek szállítmány részletek megadva"
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr "Sortétel nincs hozzárendelve ehhez a rendeléshez"
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr "Mennyiség pozitív kell legyen"
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr "Írd be a sorozatszámokat a kiosztáshoz"
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr "Szállítmány kiszállítva"
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr "Szállítás nincs hozzárendelve ehhez a rendeléshez"
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr "Nincs találat a következő sorozatszámokra"
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr "A következő sorozatszámok már ki lettek osztva"
 
@@ -3833,7 +3813,12 @@ msgstr "Kiküldve"
 msgid "Total cost"
 msgstr "Teljes költség"
 
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
 msgid "Edit Purchase Order"
 msgstr "Beszerzési rendelés szerkesztése"
 
@@ -3864,9 +3849,9 @@ msgstr "Beszállítói alkatrész kiválasztása"
 #: part/templates/part/import_wizard/ajax_match_references.html:42
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3930,7 +3915,7 @@ msgstr "Érkezett tételek"
 msgid "Order Notes"
 msgstr "Rendelés megjegyzések"
 
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
 msgid "Add Order Line"
 msgstr "Sortétel hozzáadása"
 
@@ -3948,12 +3933,12 @@ msgid "Print packing list"
 msgstr "Csomagolási lista nyomtatása"
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
 msgid "Complete Sales Order"
 msgstr "Vevői rendelés befejezése, minden kiszállítva"
 
@@ -3962,7 +3947,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr "Ehhez a vevői rendeléshez nincs minden alkatrész lefoglalva"
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2471
 msgid "Customer Reference"
 msgstr "Vevői azonosító"
 
@@ -3972,7 +3957,7 @@ msgstr "Vevői azonosító"
 msgid "Completed Shipments"
 msgstr "Kész szállítások"
 
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
 msgid "Edit Sales Order"
 msgstr "Vevői rendelés szerkesztése"
 
@@ -3986,7 +3971,7 @@ msgid "Pending Shipments"
 msgstr "Függő szállítmányok"
 
 #: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
 msgid "Actions"
 msgstr "Műveletek"
 
@@ -4114,7 +4099,7 @@ msgid "Part Category"
 msgstr "Alkatrész kategória"
 
 #: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
 #: users/models.py:38
 msgid "Part Categories"
 msgstr "Alkatrész kategóriák"
@@ -4125,7 +4110,7 @@ msgstr "Alkatrész kategóriák"
 #: part/templates/part/category_sidebar.html:9
 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
 #: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
 #: templates/navbar.html:24 users/models.py:39
 msgid "Parts"
 msgstr "Alkatrészek"
@@ -4203,7 +4188,7 @@ msgstr "Alkatrész kategória"
 
 #: part/models.py:842 part/templates/part/part_base.html:266
 #: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
 msgid "IPN"
 msgstr "IPN"
 
@@ -4317,7 +4302,7 @@ msgid "Test with this name already exists for this part"
 msgstr "Erre az alkatrészre már létezik teszt ilyen névvel"
 
 #: part/models.py:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
 msgid "Test Name"
 msgstr "Teszt név"
 
@@ -4449,7 +4434,7 @@ msgid "BOM quantity for this BOM item"
 msgstr "Alkatrészjegyzék mennyiség ehhez az alkatrészjegyzék tételhez"
 
 #: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
 #: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr "Opcionális"
@@ -4483,7 +4468,7 @@ msgid "BOM line checksum"
 msgstr "Alkatrészjegyzék sor ellenőrző összeg"
 
 #: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
 #: templates/js/translated/table_filters.js:68
 #: templates/js/translated/table_filters.js:88
 msgid "Inherited"
@@ -4494,7 +4479,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr "Ezt az alkatrészjegyzék tételt az alkatrész változatok alkatrészjegyzékei is öröklik"
 
 #: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
 msgid "Allow Variants"
 msgstr "Változatok"
 
@@ -4715,6 +4700,11 @@ msgstr "Alkatrész létrehozása"
 msgid "New Part"
 msgstr "Új alkatrész"
 
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr "Opciók"
+
 #: part/templates/part/category.html:172
 msgid "Set category"
 msgstr "Kategória beállítása"
@@ -4903,46 +4893,46 @@ msgstr "Gyártáshoz foglalások"
 msgid "Part Suppliers"
 msgstr "Alkatrész beszállítók"
 
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
 msgid "Part Manufacturers"
 msgstr "Alkatrész gyártók"
 
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
 msgid "Delete manufacturer parts"
 msgstr "Gyártói alkatrészek törlése"
 
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
 msgid "Create BOM Item"
 msgstr "Alkatrészjegyzék tétel létrehozása"
 
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
 msgid "Related Part"
 msgstr "Kapcsolódó alkatrész"
 
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
 msgid "Add Related Part"
 msgstr "Kapcsolódó alkatrész hozzáadása"
 
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
 msgid "Add Test Result Template"
 msgstr "Teszt eredmény sablon hozzáadása"
 
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr "Beszerzési egységár - %(currency)s"
 
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr "Egységár-önköltség különbség - %(currency)s"
 
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr "Beszállítói egység költség - %(currency)s"
 
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr "Egységár - %(currency)s"
@@ -5085,8 +5075,8 @@ msgid "Part is virtual (not a physical part)"
 msgstr "Virtuális (nem kézzelfogható alkatrész)"
 
 #: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
 #: templates/js/translated/model_renderers.js:192
 #: templates/js/translated/part.js:581 templates/js/translated/part.js:658
 msgid "Inactive"
@@ -5102,20 +5092,22 @@ msgstr "Alkatrész részletei"
 msgid "This part is a variant of %(link)s"
 msgstr "Ez az alkatrész egy változata a %(link)s alkatrésznek"
 
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr "Készleten"
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr "Gyártáshoz lefoglalva"
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr "Vevő rendeléshez lefoglalva"
 
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
 msgid "Can Build"
 msgstr "Gyártható"
 
@@ -5134,7 +5126,7 @@ msgid "Latest Serial Number"
 msgstr "Legutolsó sorozatszám"
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr "Sorozatszámra keresés"
 
@@ -5173,7 +5165,7 @@ msgid "Total Cost"
 msgstr "Teljes költség"
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
 msgid "No supplier pricing available"
 msgstr "Nincs beszállítói árinfomáció"
 
@@ -5292,7 +5284,7 @@ msgstr "Eladási ár megjelenítése"
 msgid "Calculation parameters"
 msgstr "Számítási paraméterek"
 
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
 msgid "Supplier Cost"
 msgstr "Beszállítói költség"
 
@@ -5531,7 +5523,7 @@ msgstr "Vonalkód hash már egyezik a készlet tétellel"
 msgid "Barcode associated with Stock Item"
 msgstr "Készlet tételhez tartozó vonalkód"
 
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
 msgid "Label printing failed"
 msgstr "Címkenyomtatás sikertelen"
 
@@ -5771,12 +5763,12 @@ msgid "Stock Item Test Report"
 msgstr "Készlet tétel teszt riport"
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr "Sorozatszám"
 
@@ -5797,7 +5789,7 @@ msgstr "Eredmény"
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
 msgid "Date"
 msgstr "Dátum"
 
@@ -5816,7 +5808,7 @@ msgstr "Beépített tételek"
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2589
 msgid "Serial"
 msgstr "Sorozatszám"
 
@@ -5833,7 +5825,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr "Sorozatszámot nem lehet megadni nem követésre kötelezett alkatrész esetén"
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr "Tulajdonos"
 
@@ -5895,7 +5887,7 @@ msgstr "Hol található ez az alkatrész?"
 msgid "Packaging this stock item is stored in"
 msgstr "A csomagolása ennek a készlet tételnek itt van tárolva"
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr "Beépítve ebbe"
 
@@ -5935,8 +5927,8 @@ msgstr "Beszerzés ehhez a készlet tételhez"
 msgid "Destination Sales Order"
 msgstr "Cél vevői rendelés"
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1816
 msgid "Expiry Date"
 msgstr "Lejárati dátum"
 
@@ -6216,11 +6208,11 @@ msgstr "Teszt adatok hozzáadása"
 msgid "Installed Stock Items"
 msgstr "Beépített készlet tételek"
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
 msgid "Install Stock Item"
 msgstr "Készlet tétel beépítése"
 
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
 msgid "Add Test Result"
 msgstr "Teszt eredmény hozzáadása"
 
@@ -6312,110 +6304,114 @@ msgstr "Készlet tétel szerkesztése"
 msgid "Delete stock item"
 msgstr "Készlet tétel törlése"
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr "előző oldal"
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr "Menj az előző sorozatszámhoz"
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr "követkető oldal"
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr "Menj a következő sorozatszámhoz"
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr "Ez a készlet tétel lejárt %(item.expiry_date)s-n"
-
-#: stock/templates/stock/item_base.html:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr "Lejárt"
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr "Ez a készlet tétel lejár %(item.expiry_date)s-n"
-
-#: stock/templates/stock/item_base.html:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr "Állott"
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr "Utoljára módosítva"
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr "Utolsó leltár"
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr "Még nem volt leltározva"
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr "Ez a készlet tétel éppen gyártás alatt van és nem szerkeszthető."
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr "Készlet tétel szerkesztése a gyártási nézetből."
-
-#: stock/templates/stock/item_base.html:244
-msgid "This stock item has not passed all required tests"
-msgstr "Ez a készlet tétel nem felelt meg az összes szükséges teszten"
-
-#: stock/templates/stock/item_base.html:252
-msgid "This stock item is allocated to Sales Order"
-msgstr "Foglalva ehhez a vevői rendeléshez"
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr "Foglalva ehhez a gyártási utasításhoz"
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr "Ez a készlet tétel egyedi követésre kötelezett - egyedi sorozatszámmal rendelkezik így a mennyiség nem módosítható."
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr "Nincs beállítva hely"
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr "Vonalkód azonosító"
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr "Szülő tétel"
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr "Nincs beállítva gyártó"
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr "Tesztek"
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr "Úgytűnik nem vagy ennek a tételnek a tulajdonosa. Ezt így nem tudod módosítani."
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr "Csak olvasható"
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr "Ez a készlet tétel éppen gyártás alatt van és nem szerkeszthető."
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr "Készlet tétel szerkesztése a gyártási nézetből."
+
+#: stock/templates/stock/item_base.html:284
+msgid "This stock item has not passed all required tests"
+msgstr "Ez a készlet tétel nem felelt meg az összes szükséges teszten"
+
+#: stock/templates/stock/item_base.html:292
+msgid "This stock item is allocated to Sales Order"
+msgstr "Foglalva ehhez a vevői rendeléshez"
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr "Foglalva ehhez a gyártási utasításhoz"
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr "Ez a készlet tétel egyedi követésre kötelezett - egyedi sorozatszámmal rendelkezik így a mennyiség nem módosítható."
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr "előző oldal"
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr "Menj az előző sorozatszámhoz"
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr "követkető oldal"
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr "Menj a következő sorozatszámhoz"
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1693
+msgid "No location set"
+msgstr "Nincs beállítva hely"
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr "Tesztek"
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr "Ez a készlet tétel lejárt %(item.expiry_date)s-n"
+
+#: stock/templates/stock/item_base.html:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr "Lejárt"
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr "Ez a készlet tétel lejár %(item.expiry_date)s-n"
+
+#: stock/templates/stock/item_base.html:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr "Állott"
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1832
+msgid "Last Updated"
+msgstr "Utoljára módosítva"
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr "Utolsó leltár"
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr "Még nem volt leltározva"
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr "Készlet állapot szerkesztése"
 
@@ -6487,8 +6483,8 @@ msgstr "Úgytűnik nem vagy ennek a készlethelynek a tulajdonosa. Ezt így nem
 msgid "Sublocations"
 msgstr "Alhelyek"
 
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:198 users/models.py:40
 msgid "Stock Locations"
 msgstr "Készlethelyek"
 
@@ -6540,7 +6536,7 @@ msgstr "Foglalások"
 msgid "Child Items"
 msgstr "Gyermek tételek"
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr "Készlet tétel konvertálása"
 
@@ -6565,55 +6561,55 @@ msgstr "Ez a művelet nem vonható vissza könnyen"
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr "Biztosan törölni akarod ezt a készlettörténeti bejegyzést?"
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr "Készlet hely QR kódja"
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr "Visszavétel készletre"
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr "Adj meg egy érvényes helyet"
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr "Készlet tétel vevőtől visszahozva"
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr "Minden teszt adat törlése"
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr "Teszt adat törlésének megerősítése"
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr "Klikkeld be a megerősítő mezőt"
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr "Készlet tétel QR kódja"
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr "Készlethely törlése"
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr "Készlet tétel törlése"
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr "Készlettörténet bejegyzés törlése"
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr "Készlettörténet bejegyzés szerkesztése"
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr "Készlettörténet bejegyzés hozzáadása"
 
@@ -7332,9 +7328,9 @@ msgstr "InvenTree verzió információk"
 
 #: templates/about.html:11 templates/about.html:105
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr "Bezárás"
@@ -7603,14 +7599,14 @@ msgid "The following parts are low on required stock"
 msgstr "A következő alkatrészek szükséges készlete alacsony"
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
 msgid "Required Quantity"
 msgstr "Szükséges mennyiség"
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
 #: templates/js/translated/part.js:530
 #: templates/js/translated/table_filters.js:178
 msgid "Available"
@@ -7645,67 +7641,67 @@ msgstr "A távoli kiszolgálónak elérhetőnek kell lennie"
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr "A távoli kép mérete nem haladhatja meg a maximális fájlméretet"
 
-#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
 msgid "No Response"
 msgstr "Nincs válasz"
 
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
 msgid "No response from the InvenTree server"
 msgstr "Nincs válasz az InvenTree kiszolgálótól"
 
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
 msgid "Error 400: Bad request"
 msgstr "Error 400: Rossz kérelem"
 
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
 msgid "API request returned error code 400"
 msgstr "Az API kérelem 400-as hibakódot adott vissza"
 
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
 msgid "Error 401: Not Authenticated"
 msgstr "Error 401: Nincs hitelesítve"
 
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
 msgid "Authentication credentials not supplied"
 msgstr "Hitelesítési adatok nem lettek megadva"
 
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
 msgid "Error 403: Permission Denied"
 msgstr "Error 403: Hozzáférés megtagadva"
 
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
 msgid "You do not have the required permissions to access this function"
 msgstr "Nincs meg a szükséges jogosultságod, hogy elérd ezt a funkciót"
 
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
 msgid "Error 404: Resource Not Found"
 msgstr "Error 404: Erőforrás nem található"
 
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
 msgid "The requested resource could not be located on the server"
 msgstr "A kért erőforrás nem található a kiszolgálón"
 
-#: templates/js/translated/api.js:217
+#: templates/js/translated/api.js:262
 msgid "Error 405: Method Not Allowed"
 msgstr "Error 405: Metódus nincs engedélyezve"
 
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
 msgid "HTTP method not allowed at URL"
 msgstr "HTTP metódus nincs engedélyezve ezen az URL-n"
 
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
 msgid "Error 408: Timeout"
 msgstr "Error 408: Időtúllépés"
 
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
 msgid "Connection timeout while requesting data from server"
 msgstr "Időtúllépés a kiszolgálótól való adatlekérés közben"
 
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
 msgid "Unhandled Error Code"
 msgstr "Nem kezelt hibakód"
 
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
 msgid "Error code"
 msgstr "Hiba kód"
 
@@ -7766,7 +7762,7 @@ msgid "Unknown response from server"
 msgstr "Ismeretlen válasz a kiszolgálótól"
 
 #: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "Invalid server response"
 msgstr "Érvénytelen válasz a szervertől"
 
@@ -7848,12 +7844,12 @@ msgid "Download BOM Template"
 msgstr "Alkarészjegyzék sablon letöltése"
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
 msgid "Format"
 msgstr "Formátum"
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr "Fájlfomátum kiválasztása"
 
@@ -7933,84 +7929,84 @@ msgstr "Alkatrészjegyzék tétel helyettesítők szerkesztése"
 msgid "All selected BOM items will be deleted"
 msgstr "Az összes kijelölt alkatrészjegyzék tétel törlésre kerül"
 
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
 msgid "Delete selected BOM items?"
 msgstr "Töröljük a kiválasztott alkatrészjegyzék tételeket?"
 
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
 msgid "Load BOM for subassembly"
 msgstr "BOM betöltése az al-gyártmányhoz"
 
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
 msgid "Substitutes Available"
 msgstr "Vannak helyettesítők"
 
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
 msgid "Variant stock allowed"
 msgstr "Készletváltozatok engedélyezve"
 
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
 msgid "No Stock Available"
 msgstr "Nincs szabad"
 
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
 msgid "Includes variant and substitute stock"
 msgstr "Változatokkal és helyettesítőkkel együtt"
 
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
 #: templates/js/translated/part.js:690
 msgid "Includes variant stock"
 msgstr "Változatokkal együtt"
 
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
 msgid "Includes substitute stock"
 msgstr "Helyettesítőkkel együtt"
 
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
 msgid "Substitutes"
 msgstr "Helyettesítõk"
 
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
 msgid "Purchase Price Range"
 msgstr "Beszerzési ártartomány"
 
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
 msgid "Purchase Price Average"
 msgstr "Beszerzési átlagár"
 
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
 msgid "View BOM"
 msgstr "Alkatrészjegyzék megtekintése"
 
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
 msgid "Validate BOM Item"
 msgstr "Alkatrészjegyzék tétel jóváhagyása"
 
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
 msgid "This line has been validated"
 msgstr "Ez a sor jóvá lett hagyva"
 
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
 msgid "Edit substitute parts"
 msgstr "Helyettesítő alkatrészek szerkesztése"
 
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
 msgid "Edit BOM Item"
 msgstr "Alkatrészjegyzék tétel szerkesztése"
 
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
 msgid "Delete BOM Item"
 msgstr "Alkatrészjegyzék tétel törlése"
 
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
 msgid "No BOM items found"
 msgstr "Nem találhatók alkatrészjegyzék tételek"
 
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
 msgid "Required Part"
 msgstr "Szükséges alkatrész"
 
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
 msgid "Inherited from parent BOM"
 msgstr "Örökölve a szülő alkatrészjegyzéktől"
 
@@ -8132,262 +8128,270 @@ msgstr "Nincs gyártási utasításhoz történő foglalás"
 msgid "Location not specified"
 msgstr "Hely nincs megadva"
 
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
 msgid "No active build outputs found"
 msgstr "Nem található aktív gyártási kimenet"
 
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
 msgid "Allocated Stock"
 msgstr "Lefoglalt készlet"
 
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
 msgid "No tracked BOM items for this build"
 msgstr "Nincsenek követett BOM tételek ehhez a gyártáshoz"
 
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
 msgid "Completed Tests"
 msgstr "Befejezett tesztek"
 
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
 msgid "No required tests for this build"
 msgstr "Nincsenek szükséges tesztek ehhez a gyártáshoz"
 
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
 msgid "Edit stock allocation"
 msgstr "Készlet foglalások szerkesztése"
 
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
 msgid "Delete stock allocation"
 msgstr "Készlet foglalások törlése"
 
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
 msgid "Edit Allocation"
 msgstr "Foglalás szerkesztése"
 
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
 msgid "Remove Allocation"
 msgstr "Foglalás törlése"
 
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
 msgid "Substitute parts available"
 msgstr "Vannak helyettesítő alkatrészek"
 
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
 msgid "Quantity Per"
 msgstr "Szükséges/db"
 
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
 msgid "Insufficient stock available"
 msgstr "Nincs elegendő"
 
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
 msgid "Sufficient stock available"
 msgstr "Van elegendő"
 
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
 msgid "Allocated"
 msgstr "Lefoglalva"
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
 msgid "Build stock"
 msgstr "Gyártási készlet"
 
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
 msgid "Order stock"
 msgstr "Készlet rendelés"
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
 msgid "Allocate stock"
 msgstr "Lefoglalt készlet"
 
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr "Kiválasztott alkatrészek"
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
 msgid "You must select at least one part to allocate"
 msgstr "Legalább egy alkatrész választása szükséges a foglaláshoz"
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
 msgid "Specify stock allocation quantity"
 msgstr "Készlet foglalási mennyiség megadása"
 
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
 msgid "All Parts Allocated"
 msgstr "Minden alkatrész lefoglalva"
 
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
 msgid "All selected parts have been fully allocated"
 msgstr "Minden kiválasztott alkatrész teljesen lefoglalva"
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
 msgid "Select source location (leave blank to take from all locations)"
 msgstr "Válassz forrás helyet (vagy hagyd üresen ha bárhonnan)"
 
-#: templates/js/translated/build.js:2117
+#: templates/js/translated/build.js:2100
 msgid "Allocate Stock Items to Build Order"
 msgstr "Készlet foglalása a gyártási utasításhoz"
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
 msgid "No matching stock locations"
 msgstr "Nincs egyező készlethely"
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
 msgid "No matching stock items"
 msgstr "Nincs egyező készlet"
 
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
 msgid "Automatic Stock Allocation"
 msgstr "Automatikus készlet foglalás"
 
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
 msgstr "A készlet automatikusan lefoglalásra került ehhez a gyártási utasításhoz, a megadott feltételek szerint"
 
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
 msgid "If a location is specifed, stock will only be allocated from that location"
 msgstr "Ha egy készlet hely meg van adva, akkor készlet csak arról a helyről lesz foglalva"
 
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
 msgstr "Ha a készlet helyettesíthetőnek minősül, akkor az első rendelkezésre álló helyről lesz lefoglalva"
 
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
 msgstr "Ha a helyettesítő készlet engedélyezve van, akkor ott az lesz használva ha az elsődleges alkatrésznek nincs készlete"
 
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
 msgid "Allocate Stock Items"
 msgstr "Készlet tételek foglalása"
 
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
 msgid "No builds matching query"
 msgstr "Nincs a lekérdezéssel egyező gyártási utasítás"
 
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
 msgid "Select"
 msgstr "Kiválaszt"
 
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
 msgid "Build order is overdue"
 msgstr "Gyártás késésben van"
 
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
 msgid "Progress"
 msgstr "Haladás"
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
 msgid "No user information"
 msgstr "Nincs felhasználói információ"
 
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
 msgid "No information"
 msgstr "Nincs információ"
 
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
 msgid "No parts allocated for"
 msgstr "Nincs lefoglalt alkatrész ehhez"
 
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
 msgid "Add Manufacturer"
 msgstr "Gyártó hozzáadása"
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
 msgid "Add Manufacturer Part"
 msgstr "Gyártói alkatrész hozzáadása"
 
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
 msgid "Edit Manufacturer Part"
 msgstr "Gyártói alkatrész szerkesztése"
 
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr "Gyártói alkatrész törlése"
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr "Beszállító hozzáadása"
 
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
 msgid "Add Supplier Part"
 msgstr "Beszállítói alkatrész hozzáadása"
 
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
 msgid "Edit Supplier Part"
 msgstr "Beszállítói alkatrész szerkesztése"
 
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
-msgstr "Beszállítói alkatrész törlése"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
+msgstr "Az összes kiválasztott beszállítói alkatrész törölve lesz"
 
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:342
 msgid "Add new Company"
 msgstr "Új cég hozzáadása"
 
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
 msgid "Parts Supplied"
 msgstr "Beszállított alkatrészek"
 
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
 msgid "Parts Manufactured"
 msgstr "Gyártott alkatrészek"
 
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
 msgid "No company information found"
 msgstr "Nem található céginformáció"
 
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
-msgstr "A következő gyártói alkatrészek törölve lesznek"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
+msgstr ""
 
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
 msgid "Delete Manufacturer Parts"
 msgstr "Gyártói alkatrészek törlése"
 
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr "Paraméterek törlése"
+
+#: templates/js/translated/company.js:595
 msgid "No manufacturer parts found"
 msgstr "Nincs gyártói alkatrész"
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
 #: templates/js/translated/part.js:650
 msgid "Template part"
 msgstr "Sablon alkatrész"
 
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
 #: templates/js/translated/part.js:654
 msgid "Assembled part"
 msgstr "Gyártmány alkatrész"
 
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
 msgid "No parameters found"
 msgstr "Nem található paraméter"
 
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
 msgid "Edit parameter"
 msgstr "Paraméter szerkesztése"
 
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
 msgid "Delete parameter"
 msgstr "Paraméter törlése"
 
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
 msgid "Edit Parameter"
 msgstr "Paraméter szerkesztése"
 
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
 msgid "Delete Parameter"
 msgstr "Paraméter törlése"
 
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
 msgid "No supplier parts found"
 msgstr "Nincs beszállítói alkatrész"
 
@@ -8425,61 +8429,61 @@ msgstr "Összes szűrő törlése"
 msgid "Create filter"
 msgstr "Szűrő létrehozása"
 
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
 msgid "Action Prohibited"
 msgstr "Művelet tiltva"
 
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
 msgid "Create operation not allowed"
 msgstr "Létrehozás nem engedélyezett"
 
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
 msgid "Update operation not allowed"
 msgstr "Módosítás nem engedélyezett"
 
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
 msgid "Delete operation not allowed"
 msgstr "Törlés nem engedélyezett"
 
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
 msgid "View operation not allowed"
 msgstr "Megtekintés nem engedélyezett"
 
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
 msgid "Keep this form open"
 msgstr "Form nyitva tartása"
 
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
 msgid "Enter a valid number"
 msgstr "Adj meg egy érvényes számot"
 
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
 #: templates/modals.html:43
 msgid "Form errors exist"
 msgstr "Form hibák vannak"
 
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
 msgid "No results found"
 msgstr "Nincs eredmény"
 
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
 msgid "Searching"
 msgstr "Keresés"
 
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
 msgid "Clear input"
 msgstr "Bevitel törlése"
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "File Column"
 msgstr "Fájl oszlop"
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "Field Name"
 msgstr "Mező név"
 
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
 msgid "Select Columns"
 msgstr "Oszlopok kiválasztása"
 
@@ -8553,62 +8557,62 @@ msgstr "kiválasztott készlet tételek"
 msgid "Select Label Template"
 msgstr "Címke sablon kiválasztása"
 
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
 msgid "Cancel"
 msgstr "Mégsem"
 
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
 #: templates/modals.html:28 templates/modals.html:51
 msgid "Submit"
 msgstr "Küldés"
 
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
 msgid "Form Title"
 msgstr "Form megnevezése"
 
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
 msgid "Waiting for server..."
 msgstr "Várakozás a kiszolgálóra..."
 
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
 msgid "Show Error Information"
 msgstr "Hibainformációk megjelenítése"
 
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
 msgid "Accept"
 msgstr "Elfogadás"
 
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
 msgid "Loading Data"
 msgstr "Adatok betöltése"
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Invalid response from server"
 msgstr "Rossz válasz a kiszolgálótól"
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Form data missing from server response"
 msgstr "Űrlap adat hiányzik a kiszolgálótól kapott válaszban"
 
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
 msgid "Error posting form data"
 msgstr "Form adat küldési hiba"
 
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "JSON response missing form data"
 msgstr "JSON válasz hiányzó form adatok"
 
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
 msgid "Error 400: Bad Request"
 msgstr "Error 400: Rossz kérelem"
 
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
 msgid "Server returned error code 400"
 msgstr "A kiszolgáló 400-as hibakódot adott vissza"
 
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
 msgid "Error requesting form data"
 msgstr "Form adat lekérése sikertelen"
 
@@ -8666,377 +8670,381 @@ msgstr "Nincs olvasatlan értesítés"
 msgid "Notifications will load here"
 msgstr "Az értesítések itt fognak megjelenni"
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr "Ehhez a szállítmányhoz nincs készlet hozzárendelve"
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr "A következő készlet tételek ki lesznek szállítva"
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr "Szállítmány kész"
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr "Szállítmány megerősítése"
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
 msgstr ""
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
 msgstr ""
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr "Beszerzési rendelés befejezése"
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr "Rendelés befejezettnek jelölése?"
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr "Minden sortétel megérkezett"
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr "Ez a rendelés olyan sortételeket tartalmaz amik még nem érkeztek be."
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr "A rendelés befejezésével jelölésével annak adatai és sortételei a továbbiakban már nem lesznek szerkeszthetők."
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr "Beszerzési rendelés törlése"
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr "Biztosan törölni szeretnéd ezt a beszerzési rendelést?"
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr "Ezt a beszerzési rendelést nem lehet törölni"
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr "Beszerzési rendelés kiküldése"
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr "A beszerzési rendelés kiküldése után annak sortételei a továbbiakban már nem lesznek szerkeszthetők."
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr "Vevő rendelés törlése"
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr "A rendelés törlésével annak adatai a továbbiakban már nem lesznek szerkeszthetők."
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr "Szállítmány létrehozása"
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr "Vevő hozzáadása"
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr "Vevői rendelés létrehozása"
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr "Rendelés exportálása"
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr "Legalább egy beszerezhető alkatrészt ki kell választani"
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr "Rendelendő mennyiség"
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr "Új beszállítói alkatrész"
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr "Új beszerzési rendelés"
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr "Hozzáadás beszerzési rendeléshez"
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr "Nincsenek egyező beszállítói alkatrészek"
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr "Nincsenek egyező beszerzési rendelések"
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr "Sortételek kiválasztása"
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr "Legalább egy sortételt ki kell választani"
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr "Batch kód hozzáadása"
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr "Sorozatszám hozzáadása"
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr "Érkező mennyiség"
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
 msgid "Stock Status"
 msgstr "Készlet állapota"
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr "Rendelési kód"
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr "Megrendelve"
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr "Érkező mennyiség"
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr "Bevételezés megerősítése"
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr "Beszerzési rendelés tételeinek bevételezése"
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr "Nem található beszerzési rendelés"
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
 msgid "Order is overdue"
 msgstr "Rendelés késésben"
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
 msgid "Items"
 msgstr "Tételek"
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
 msgid "Duplicate Line Item"
 msgstr "Sortétel másolása"
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
 msgid "Edit Line Item"
 msgstr "Sortétel szerkesztése"
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
 msgid "Delete Line Item"
 msgstr "Sortétel törlése"
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1856
 msgid "No line items found"
 msgstr "Nem találhatók sortételek"
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
 msgid "Total"
 msgstr "Összesen"
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr "Egységár"
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
 msgid "Total Price"
 msgstr "Teljes ár"
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr "Ez a sortétel késésben van"
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr "Sortétel bevételezése"
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
 msgid "Duplicate line item"
 msgstr "Sortétel másolása"
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
 msgid "Edit line item"
 msgstr "Sortétel szerkesztése"
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
 msgid "Delete line item"
 msgstr "Sortétel törlése"
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
 msgid "Duplicate line"
 msgstr "Sor másolása"
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
 msgid "Edit line"
 msgstr "Sor szerkesztése"
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
 msgid "Delete line"
 msgstr "Sor törlése"
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
 msgid "Duplicate Line"
 msgstr "Sor másolása"
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
 msgid "Edit Line"
 msgstr "Sor szerkesztése"
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
 msgid "Delete Line"
 msgstr "Sor törlése"
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2279
 msgid "No matching line"
 msgstr "Nincs egyező sor"
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2392
 msgid "No sales orders found"
 msgstr "Nem található vevői rendelés"
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2462
 msgid "Invalid Customer"
 msgstr "Érvénytelen vevő"
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2549
 msgid "Edit shipment"
 msgstr "Szállítmány szerkesztése"
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2552
 msgid "Complete shipment"
 msgstr "Szállítmány kész"
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2557
 msgid "Delete shipment"
 msgstr "Szállítmány törlése"
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2577
 msgid "Edit Shipment"
 msgstr "Szállítmány szerkesztése"
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2594
 msgid "Delete Shipment"
 msgstr "Szállítmány törlése"
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2628
 msgid "No matching shipments found"
 msgstr "Nincs egyező szállímány"
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2638
 msgid "Shipment Reference"
 msgstr "Szállítmány azonosító"
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2662
 msgid "Not shipped"
 msgstr "Nincs szállítva"
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2668
 msgid "Tracking"
 msgstr "Követés"
 
-#: templates/js/translated/order.js:2603
+#: templates/js/translated/order.js:2672
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:2841
 msgid "Add Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2892
 msgid "Confirm stock allocation"
 msgstr "Készlet foglalás megerősítése"
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2893
 msgid "Allocate Stock Items to Sales Order"
 msgstr "Készlet foglalása a vevői rendeléshez"
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:3101
 msgid "No sales order allocations found"
 msgstr "Nincs vevői rendeléshez történő foglalás"
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:3182
 msgid "Edit Stock Allocation"
 msgstr "Készlet foglalások szerkesztése"
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:3199
 msgid "Confirm Delete Operation"
 msgstr "Törlési művelet megerősítése"
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:3200
 msgid "Delete Stock Allocation"
 msgstr "Készlet foglalások törlése"
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
 msgid "Shipped to customer"
 msgstr "Vevőnek kiszállítva"
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
 msgid "Stock location not specified"
 msgstr "Készlethely nincs megadva"
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3623
 msgid "Allocate serial numbers"
 msgstr "Sorozatszámok kiosztása"
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3629
 msgid "Purchase stock"
 msgstr "Készletrendelés"
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
 msgid "Calculate price"
 msgstr "Árszámítás"
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3648
 msgid "Cannot be deleted as items have been shipped"
 msgstr "Nem törölhető mivel a tételek ki lettek szállítva"
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3651
 msgid "Cannot be deleted as items have been allocated"
 msgstr "Nem törölhető mivel tételek vannak lefoglalva"
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3733
 msgid "Allocate Serial Numbers"
 msgstr "Sorozatszámok kiosztása"
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3842
 msgid "Update Unit Price"
 msgstr "Egységár módosítása"
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3856
 msgid "No matching line items"
 msgstr "Nincs egyező sortétel"
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:4092
 msgid "No matching lines"
 msgstr "Nincsenek egyező sorok"
 
@@ -9218,7 +9226,7 @@ msgid "No category"
 msgstr "Nincs kategória"
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2238
 msgid "Display as list"
 msgstr "Megjelenítés listaként"
 
@@ -9226,7 +9234,7 @@ msgstr "Megjelenítés listaként"
 msgid "Display as grid"
 msgstr "Megjelenítés rácsnézetként"
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
 msgid "Display as tree"
 msgstr "Megjelenítés fában"
 
@@ -9234,7 +9242,7 @@ msgstr "Megjelenítés fában"
 msgid "Subscribed category"
 msgstr "Értesítésre beállított kategória"
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
 msgid "Path"
 msgstr "Elérési út"
 
@@ -9242,12 +9250,12 @@ msgstr "Elérési út"
 msgid "No test templates matching query"
 msgstr "Nincs a lekérdezéssel egyező teszt sablon"
 
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
 msgid "Edit test result"
 msgstr "Teszt eredmény szerkesztése"
 
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
 msgid "Delete test result"
 msgstr "Teszt eredmény törlése"
 
@@ -9368,11 +9376,11 @@ msgstr "Vevői rendelések kiválasztása"
 msgid "Sales Order(s) must be selected before printing report"
 msgstr "Vevői rendelés(eke)t ki kell választani a riport nyomtatás előtt"
 
-#: templates/js/translated/search.js:307
+#: templates/js/translated/search.js:352
 msgid "Minimize results"
 msgstr "Eredmények összezárása"
 
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:355
 msgid "Remove results"
 msgstr "Eredmények eltávolítása"
 
@@ -9532,204 +9540,204 @@ msgstr "Ki kell választanod legalább egy rendelkezésre álló készlet tétel
 msgid "Confirm stock adjustment"
 msgstr "Készlet módosítás jóváhagyása"
 
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
 msgid "PASS"
 msgstr "SIKER"
 
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
 msgid "FAIL"
 msgstr "SIKERTELEN"
 
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
 msgid "NO RESULT"
 msgstr "NINCS EREDMÉNY"
 
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
 msgid "Pass test"
 msgstr "Teszt sikeres"
 
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
 msgid "Add test result"
 msgstr "Teszt eredmény hozzáadása"
 
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
 msgid "No test results found"
 msgstr "Nincs teszt eredmény"
 
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
 msgid "Test Date"
 msgstr "Teszt dátuma"
 
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
 msgid "Edit Test Result"
 msgstr "Teszt eredmény szerkesztése"
 
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
 msgid "Delete Test Result"
 msgstr "Teszt eredmény törlése"
 
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
 msgid "In production"
 msgstr "Gyártásban"
 
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
 msgid "Installed in Stock Item"
 msgstr "Beépítve készlet tételbe"
 
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
 msgid "Assigned to Sales Order"
 msgstr "Vevő rendeléshez hozzárendelve"
 
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
 msgid "No stock location set"
 msgstr "Nincs hely megadva"
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1712
 msgid "Stock item is in production"
 msgstr "Készlet tétel gyártás alatt"
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1717
 msgid "Stock item assigned to sales order"
 msgstr "Készlet tétel hozzárendelve egy vevői rendeléshez"
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1720
 msgid "Stock item assigned to customer"
 msgstr "Készlet tétel hozzárendelve egy vevőhöz"
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr "Készlet tétel lejárt"
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr "Készlet tétel hamarosan lejár"
-
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
 msgid "Serialized stock item has been allocated"
 msgstr "Egyedi követésre kötelezett készlet tétel lefoglalva"
 
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
 msgid "Stock item has been fully allocated"
 msgstr "Készlet tétel teljes egészében lefoglalva"
 
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
 msgid "Stock item has been partially allocated"
 msgstr "Készlet tétel részben lefoglalva"
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1730
 msgid "Stock item has been installed in another item"
 msgstr "Készlet tétel beépítve egy másikba"
 
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1734
+msgid "Stock item has expired"
+msgstr "Készlet tétel lejárt"
+
+#: templates/js/translated/stock.js:1736
+msgid "Stock item will expire soon"
+msgstr "Készlet tétel hamarosan lejár"
+
+#: templates/js/translated/stock.js:1743
 msgid "Stock item has been rejected"
 msgstr "Készlet tétel elutasítva"
 
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1745
 msgid "Stock item is lost"
 msgstr "Készlet tétel elveszett"
 
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1747
 msgid "Stock item is destroyed"
 msgstr "Készlet tétel megsemmisült"
 
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1751
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr "Kimerült"
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1802
 msgid "Stocktake"
 msgstr "Leltár"
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1884
 msgid "Supplier part not specified"
 msgstr "Beszállítói alkatrész nincs megadva"
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1922
 msgid "No stock items matching query"
 msgstr "Nincs a lekérdezésnek megfelelő készlet tétel"
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2095
 msgid "Set Stock Status"
 msgstr "Készlet állapot beállítása"
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2109
 msgid "Select Status Code"
 msgstr "Státuszkód kiválasztása"
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2110
 msgid "Status code must be selected"
 msgstr "Státuszkódot ki kell választani"
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2365
 msgid "Details"
 msgstr "Részletek"
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2381
 msgid "Part information unavailable"
 msgstr "Alkatrész információ nem áll rendelkezésre"
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2403
 msgid "Location no longer exists"
 msgstr "A hely már nem létezik"
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2422
 msgid "Purchase order no longer exists"
 msgstr "Beszerzési megrendelés már nem létezik"
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
 msgid "Customer no longer exists"
 msgstr "Vevő már nem létezik"
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2459
 msgid "Stock item no longer exists"
 msgstr "A készlet tétel már nem létezik"
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2482
 msgid "Added"
 msgstr "Hozzáadva"
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2490
 msgid "Removed"
 msgstr "Eltávolítva"
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2566
 msgid "No installed items"
 msgstr "Nincsenek beépített tételek"
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
 msgid "Uninstall Stock Item"
 msgstr "Készlet tétel kiszedése"
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2666
 msgid "Select stock item to uninstall"
 msgstr "Válaszd ki a kiszedni való készlet tételt"
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2687
 msgid "Install another stock item into this item"
 msgstr "Másik tétel beépítése ebbe a készlet tételbe"
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2688
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr "Készlet tételek csak akkor építhetők be ha teljesítik a következő kritériumokat"
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2690
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr "A készlet tétel egy olyan alkatrészre mutat ami alkatrészjegyzéke ennek a készlet tételnek"
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2691
 msgid "The Stock Item is currently available in stock"
 msgstr "A készlet tétel jelenleg elérhető készleten"
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2692
 msgid "The Stock Item is not already installed in another item"
 msgstr "A készlet tétel még nem épült be egy másik tételbe"
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2693
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr "A készlet tétel követett vagy sorozatszámmal vagy batch kóddal"
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2706
 msgid "Select part to install"
 msgstr "Válaszd ki a beépítendő alkatrészt"
 
@@ -9961,69 +9969,81 @@ msgstr "Elérhető"
 msgid "Purchasable"
 msgstr "Beszerezhető"
 
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr "Naptár nézet megjelenítése"
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr "Lista nézet megjenítése"
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
 msgid "Export Table Data"
 msgstr "Táblázat exportálása"
 
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
 msgid "Select File Format"
 msgstr "Fájlfomátum kiválasztása"
 
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
 msgid "Loading data"
 msgstr "Adatok betöltése"
 
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
 msgid "rows per page"
 msgstr "sor oldalanként"
 
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
 msgid "Showing all rows"
 msgstr "Összes sor mutatása"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "Showing"
 msgstr "Látható"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "to"
 msgstr "-"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "of"
 msgstr "a"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "rows"
 msgstr "sorból,"
 
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
 #: templates/search.html:8 templates/search_form.html:6
 #: templates/search_form.html:7
 msgid "Search"
 msgstr "Keresés"
 
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
 msgid "No matching results"
 msgstr "Nincs egyező eredmény"
 
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
 msgid "Hide/Show pagination"
 msgstr "Lapozó elrejtése/megjelenítése"
 
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
 msgid "Refresh"
 msgstr "Frissítés"
 
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
 msgid "Toggle"
 msgstr "Átváltás"
 
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
 msgid "Columns"
 msgstr "Oszlopok"
 
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
 msgid "All"
 msgstr "Összes"
 
diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po
index 9db7d10c10..c9c6e13ad4 100644
--- a/InvenTree/locale/id/LC_MESSAGES/django.po
+++ b/InvenTree/locale/id/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
-"PO-Revision-Date: 2022-05-24 01:42\n"
+"POT-Creation-Date: 2022-05-28 23:41+0000\n"
+"PO-Revision-Date: 2022-05-29 01:47\n"
 "Last-Translator: \n"
 "Language-Team: Indonesian\n"
 "Language: id_ID\n"
@@ -21,7 +21,7 @@ msgstr ""
 msgid "API endpoint not found"
 msgstr "API endpoint tidak ditemukan"
 
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
 msgid "Error details can be found in the admin panel"
 msgstr ""
 
@@ -30,7 +30,7 @@ msgid "Enter date"
 msgstr "Masukkan tanggal"
 
 #: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
 msgid "Confirm"
 msgstr "Konfirmasi"
 
@@ -79,7 +79,7 @@ msgstr ""
 msgid "Duplicate serial: {sn}"
 msgstr ""
 
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
 msgid "Invalid quantity provided"
 msgstr ""
 
@@ -134,10 +134,12 @@ msgid "Select file to attach"
 msgstr ""
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:139 order/models.py:1273
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr ""
 
@@ -159,7 +161,7 @@ msgstr ""
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2513
 msgid "User"
 msgstr ""
 
@@ -205,9 +207,10 @@ msgstr ""
 #: templates/InvenTree/settings/plugin.html:132
 #: templates/InvenTree/settings/plugin_settings.html:23
 #: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2283
 msgid "Name"
 msgstr ""
 
@@ -216,22 +219,22 @@ msgstr ""
 #: company/models.py:575 company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
 #: part/templates/part/part_base.html:167
 #: part/templates/part/set_category.html:14 report/models.py:182
 #: report/models.py:547 report/models.py:586
 #: report/templates/report/inventree_build_order_base.html:118
 #: stock/templates/stock/location.html:103
 #: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
 msgid "Description"
 msgstr ""
 
@@ -406,7 +409,7 @@ msgid "InvenTree system health checks failed"
 msgstr ""
 
 #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
 msgid "Pending"
 msgstr ""
 
@@ -414,141 +417,145 @@ msgstr ""
 msgid "Placed"
 msgstr ""
 
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
 #: order/templates/order/order_base.html:134
 #: order/templates/order/sales_order_base.html:133
 msgid "Complete"
 msgstr ""
 
 #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
 msgid "Cancelled"
 msgstr ""
 
 #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
 msgid "Lost"
 msgstr ""
 
 #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
 msgid "Returned"
 msgstr ""
 
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
 msgid "Shipped"
 msgstr ""
 
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
 msgid "OK"
 msgstr ""
 
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
 msgid "Attention needed"
 msgstr ""
 
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
 msgid "Damaged"
 msgstr ""
 
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
 msgid "Destroyed"
 msgstr ""
 
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
 msgid "Rejected"
 msgstr ""
 
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
 msgid "Legacy stock tracking entry"
 msgstr ""
 
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
 msgid "Stock item created"
 msgstr ""
 
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
 msgid "Edited stock item"
 msgstr ""
 
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
 msgid "Assigned serial number"
 msgstr ""
 
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
 msgid "Stock counted"
 msgstr ""
 
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
 msgid "Stock manually added"
 msgstr ""
 
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
 msgid "Stock manually removed"
 msgstr ""
 
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
 msgid "Location changed"
 msgstr ""
 
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
 msgid "Installed into assembly"
 msgstr ""
 
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
 msgid "Removed from assembly"
 msgstr ""
 
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
 msgid "Installed component item"
 msgstr ""
 
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
 msgid "Removed component item"
 msgstr ""
 
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
 msgid "Split from parent item"
 msgstr ""
 
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
 msgid "Merged stock items"
 msgstr ""
 
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
 msgid "Converted to variant"
 msgstr ""
 
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
 msgid "Sent to customer"
 msgstr ""
 
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
 msgid "Returned from customer"
 msgstr ""
 
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
 msgid "Build order output created"
 msgstr ""
 
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
 msgid "Build order output completed"
 msgstr ""
 
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
 msgid "Consumed by build order"
 msgstr ""
 
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
 msgid "Received against purchase order"
 msgstr ""
 
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
 msgid "Production"
 msgstr ""
 
@@ -637,15 +644,15 @@ msgstr ""
 msgid "Build Order Reference"
 msgstr ""
 
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
 #: part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
 msgid "Reference"
 msgstr ""
 
@@ -664,7 +671,7 @@ msgstr ""
 
 #: build/models.py:225 build/templates/build/build_base.html:77
 #: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
 #: part/models.py:2303 part/models.py:2319 part/models.py:2338
 #: part/models.py:2355 part/models.py:2457 part/models.py:2579
 #: part/models.py:2669 part/models.py:2760 part/models.py:3050
@@ -679,19 +686,21 @@ msgstr ""
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
 #: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
 msgid "Part"
 msgstr ""
 
@@ -708,7 +717,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr ""
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
 msgid "Source Location"
 msgstr ""
 
@@ -749,7 +758,7 @@ msgid "Build status code"
 msgstr ""
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr ""
 
@@ -757,12 +766,12 @@ msgstr ""
 msgid "Batch code for this build output"
 msgstr ""
 
-#: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
 msgid "Creation Date"
 msgstr ""
 
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
 msgid "Target completion date"
 msgstr ""
 
@@ -770,8 +779,8 @@ msgstr ""
 msgid "Target date for build completion. Build will be overdue after this date."
 msgstr ""
 
-#: build/models.py:300 order/models.py:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
 msgid "Completion Date"
 msgstr ""
 
@@ -779,7 +788,7 @@ msgstr ""
 msgid "completed by"
 msgstr ""
 
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
 msgid "Issued by"
 msgstr ""
 
@@ -788,11 +797,11 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
 msgid "Responsible"
 msgstr ""
 
@@ -804,14 +813,14 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr ""
 
 #: build/models.py:334 build/serializers.py:390
 #: build/templates/build/sidebar.html:21 company/models.py:134
 #: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
 #: order/templates/order/po_sidebar.html:11
 #: order/templates/order/so_sidebar.html:17 part/models.py:983
 #: part/templates/part/part_sidebar.html:59
@@ -820,11 +829,11 @@ msgstr ""
 #: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
 msgid "Notes"
 msgstr ""
 
@@ -857,7 +866,7 @@ msgstr ""
 msgid "Stock item is over-allocated"
 msgstr ""
 
-#: build/models.py:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1413
 msgid "Allocation quantity must be greater than zero"
 msgstr ""
 
@@ -869,8 +878,8 @@ msgstr ""
 msgid "Selected stock item not found in BOM"
 msgstr ""
 
-#: build/models.py:1375 stock/templates/stock/item_base.html:335
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
 #: templates/navbar.html:38
 msgid "Build"
 msgstr ""
@@ -879,18 +888,18 @@ msgstr ""
 msgid "Build to allocate parts"
 msgstr ""
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2449
 msgid "Stock Item"
 msgstr ""
 
@@ -902,10 +911,10 @@ msgstr ""
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_build_order_base.html:114
@@ -913,25 +922,24 @@ 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
 msgid "Quantity"
 msgstr ""
 
@@ -948,7 +956,7 @@ msgid "Destination stock item"
 msgstr ""
 
 #: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
 msgid "Build Output"
 msgstr ""
 
@@ -972,7 +980,7 @@ msgstr ""
 msgid "Enter quantity for build output"
 msgstr ""
 
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
 #: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
 #: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
 #: stock/serializers.py:294
@@ -987,8 +995,8 @@ msgstr ""
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr ""
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr ""
@@ -1015,15 +1023,15 @@ msgstr ""
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
 msgid "Location"
 msgstr ""
 
@@ -1032,12 +1040,12 @@ msgid "Location for completed build outputs"
 msgstr ""
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: build/templates/build/detail.html:62 order/models.py:663
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
 msgid "Status"
 msgstr ""
 
@@ -1118,7 +1126,7 @@ msgstr ""
 msgid "Item must be in stock"
 msgstr ""
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr ""
@@ -1135,7 +1143,7 @@ msgstr ""
 msgid "This stock item has already been allocated to this build output"
 msgstr ""
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr ""
 
@@ -1233,13 +1241,13 @@ msgid "Stock has not been fully allocated to this Build Order"
 msgstr ""
 
 #: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr ""
 
@@ -1266,14 +1274,14 @@ msgid "Completed"
 msgstr ""
 
 #: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2436
 msgid "Sales Order"
 msgstr ""
 
@@ -1308,8 +1316,8 @@ msgstr ""
 msgid "Stock can be taken from any available location."
 msgstr ""
 
-#: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
 msgid "Destination"
 msgstr ""
 
@@ -1322,11 +1330,11 @@ msgid "Allocated Parts"
 msgstr ""
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
-#: templates/js/translated/build.js:1184
+#: stock/templates/stock/item_base.html:170
+#: templates/js/translated/build.js:1179
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1335,7 +1343,7 @@ msgstr ""
 #: build/templates/build/detail.html:126
 #: order/templates/order/order_base.html:149
 #: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
 msgid "Created"
 msgstr ""
 
@@ -1355,7 +1363,7 @@ msgstr ""
 msgid "Allocate Stock to Build"
 msgstr ""
 
-#: build/templates/build/detail.html:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
 msgid "Unallocate stock"
 msgstr ""
 
@@ -1385,8 +1393,8 @@ msgstr ""
 
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: company/templates/company/detail.html:85
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr ""
 
@@ -1461,8 +1469,8 @@ msgid "Completed Build Outputs"
 msgstr ""
 
 #: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
 #: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:82
 #: order/templates/order/sales_order_detail.html:129
@@ -1476,11 +1484,11 @@ msgstr ""
 msgid "Build Notes"
 msgstr ""
 
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
 msgid "Allocation Complete"
 msgstr ""
 
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
@@ -1492,18 +1500,6 @@ msgstr ""
 msgid "Print Build Orders"
 msgstr ""
 
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr ""
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr ""
-
 #: build/templates/build/sidebar.html:5
 msgid "Build Order Details"
 msgstr ""
@@ -1727,7 +1723,7 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
 #: templates/js/translated/table_filters.js:168
 #: templates/js/translated/table_filters.js:460
 msgid "Assembly"
@@ -2413,7 +2409,7 @@ msgid "Price break quantity"
 msgstr ""
 
 #: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: company/templates/company/supplier_part.html:263 order/models.py:975
 #: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
 msgid "Price"
 msgstr ""
@@ -2556,7 +2552,7 @@ msgstr ""
 
 #: company/models.py:104 company/templates/company/company_base.html:100
 #: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
 msgid "Website"
 msgstr ""
 
@@ -2651,10 +2647,11 @@ msgstr ""
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: stock/templates/stock/item_base.html:212
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
 #: templates/js/translated/table_filters.js:411
 msgid "Manufacturer"
 msgstr ""
@@ -2665,8 +2662,10 @@ msgstr ""
 
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr ""
@@ -2686,7 +2685,7 @@ msgstr ""
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr ""
 
@@ -2696,8 +2695,9 @@ msgstr ""
 
 #: company/models.py:427
 #: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
 msgid "Value"
 msgstr ""
 
@@ -2708,7 +2708,7 @@ msgstr ""
 #: company/models.py:434 part/models.py:940 part/models.py:2549
 #: part/templates/part/part_base.html:280
 #: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
 msgid "Units"
 msgstr ""
 
@@ -2721,11 +2721,12 @@ msgid "Linked manufacturer part must reference the same base part"
 msgstr ""
 
 #: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: stock/templates/stock/item_base.html:229
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2736,8 +2737,9 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
 msgid "SKU"
 msgstr ""
 
@@ -2773,8 +2775,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr ""
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
 msgid "Packaging"
 msgstr ""
 
@@ -2804,12 +2806,12 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
 msgid "Company"
 msgstr ""
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr ""
 
@@ -2822,7 +2824,7 @@ msgid "Edit company information"
 msgstr ""
 
 #: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
 msgid "Edit Company"
 msgstr ""
 
@@ -2845,12 +2847,12 @@ msgstr ""
 msgid "Download image from URL"
 msgstr ""
 
-#: company/templates/company/company_base.html:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr ""
@@ -2869,7 +2871,7 @@ msgid "Upload Image"
 msgstr ""
 
 #: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
+#: company/templates/company/manufacturer_part_sidebar.html:7
 #: templates/InvenTree/search.html:118
 msgid "Supplier Parts"
 msgstr ""
@@ -2884,28 +2886,19 @@ msgstr ""
 msgid "New Supplier Part"
 msgstr ""
 
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr ""
-
 #: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
 #: part/templates/part/category.html:176
 msgid "Order parts"
 msgstr ""
 
 #: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
 msgid "Delete parts"
 msgstr ""
 
 #: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
 msgid "Delete Parts"
 msgstr ""
 
@@ -2917,88 +2910,76 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
 msgid "New Manufacturer Part"
 msgstr ""
 
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
 msgid "Supplier Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
 #: company/templates/company/sidebar.html:12
 #: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
 #: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:235 templates/navbar.html:50
 #: users/models.py:43
 msgid "Purchase Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
 #: order/templates/order/purchase_orders.html:17
 msgid "Create new purchase order"
 msgstr ""
 
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr ""
 
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
 #: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
 #: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
 #: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:259 templates/navbar.html:61
 #: users/models.py:44
 msgid "Sales Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
 #: order/templates/order/sales_orders.html:20
 msgid "Create new sales order"
 msgstr ""
 
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
 #: order/templates/order/sales_orders.html:21
 msgid "New Sales Order"
 msgstr ""
 
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
 msgid "Assigned Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
 msgid "Company Notes"
 msgstr ""
 
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr ""
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr ""
-
 #: company/templates/company/index.html:8
 msgid "Supplier List"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
 #: templates/navbar.html:49
 msgid "Manufacturers"
 msgstr ""
@@ -3011,12 +2992,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -3032,55 +3013,46 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:119
 #: company/templates/company/supplier_part.html:15 company/views.py:41
 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
 msgid "Suppliers"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
 #: part/templates/part/detail.html:363
 msgid "Delete supplier parts"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
 msgid "Delete"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:164
+#: company/templates/company/manufacturer_part.html:166
 #: company/templates/company/manufacturer_part_sidebar.html:5
 #: part/templates/part/category_sidebar.html:19
 #: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8
 msgid "Parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
 #: part/templates/part/detail.html:184
 #: templates/InvenTree/settings/category.html:12
 #: templates/InvenTree/settings/part.html:66
 msgid "New Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
 msgid "Delete parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
 msgid "Add Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr ""
-
 #: company/templates/company/sidebar.html:6
 msgid "Manufactured Parts"
 msgstr ""
@@ -3099,19 +3071,19 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
 msgid "Delete supplier part"
 msgstr ""
 
@@ -3186,11 +3158,11 @@ msgstr ""
 #: part/templates/part/part_sidebar.html:14
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
 #: templates/InvenTree/settings/sidebar.html:43
 #: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
 #: templates/navbar.html:31
 msgid "Stock"
 msgstr ""
@@ -3216,8 +3188,8 @@ msgstr ""
 #: stock/templates/stock/location.html:161
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
+#: templates/js/translated/stock.js:2307 users/models.py:41
 msgid "Stock Items"
 msgstr ""
 
@@ -3229,7 +3201,7 @@ msgstr ""
 msgid "New Manufacturer"
 msgstr ""
 
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
 #: templates/navbar.html:60
 msgid "Customers"
 msgstr ""
@@ -3238,7 +3210,7 @@ msgstr ""
 msgid "New Customer"
 msgstr ""
 
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:212
 msgid "Companies"
 msgstr ""
 
@@ -3328,305 +3300,313 @@ msgstr ""
 msgid "Part query filters (comma-separated value of key=value pairs)"
 msgstr ""
 
-#: order/models.py:130
+#: order/models.py:137
 msgid "Order description"
 msgstr ""
 
-#: order/models.py:132
+#: order/models.py:139 order/models.py:1274
 msgid "Link to external page"
 msgstr ""
 
-#: order/models.py:140
+#: order/models.py:147
 msgid "Created By"
 msgstr ""
 
-#: order/models.py:147
+#: order/models.py:154
 msgid "User or group responsible for this order"
 msgstr ""
 
-#: order/models.py:152
+#: order/models.py:159
 msgid "Order notes"
 msgstr ""
 
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
 msgid "Order reference"
 msgstr ""
 
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
 msgid "Purchase order status"
 msgstr ""
 
-#: order/models.py:253
+#: order/models.py:311
 msgid "Company from which the items are being ordered"
 msgstr ""
 
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
 msgid "Supplier Reference"
 msgstr ""
 
-#: order/models.py:256
+#: order/models.py:314
 msgid "Supplier order reference code"
 msgstr ""
 
-#: order/models.py:263
+#: order/models.py:321
 msgid "received by"
 msgstr ""
 
-#: order/models.py:268
+#: order/models.py:326
 msgid "Issue Date"
 msgstr ""
 
-#: order/models.py:269
+#: order/models.py:327
 msgid "Date order was issued"
 msgstr ""
 
-#: order/models.py:274
+#: order/models.py:332
 msgid "Target Delivery Date"
 msgstr ""
 
-#: order/models.py:275
+#: order/models.py:333
 msgid "Expected date for order delivery. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:281
+#: order/models.py:339
 msgid "Date order was completed"
 msgstr ""
 
-#: order/models.py:310
+#: order/models.py:368
 msgid "Part supplier must match PO supplier"
 msgstr ""
 
-#: order/models.py:456
+#: order/models.py:514
 msgid "Quantity must be a positive number"
 msgstr ""
 
-#: order/models.py:601
+#: order/models.py:659
 msgid "Company to which the items are being sold"
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer Reference "
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer order reference code"
 msgstr ""
 
-#: order/models.py:612
+#: order/models.py:670
 msgid "Target date for order completion. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
 msgid "Shipment Date"
 msgstr ""
 
-#: order/models.py:622
+#: order/models.py:680
 msgid "shipped by"
 msgstr ""
 
-#: order/models.py:688
+#: order/models.py:746
 msgid "Order cannot be completed as no parts have been assigned"
 msgstr ""
 
-#: order/models.py:692
+#: order/models.py:750
 msgid "Only a pending order can be marked as complete"
 msgstr ""
 
-#: order/models.py:695
+#: order/models.py:753
 msgid "Order cannot be completed as there are incomplete shipments"
 msgstr ""
 
-#: order/models.py:698
+#: order/models.py:756
 msgid "Order cannot be completed as there are incomplete line items"
 msgstr ""
 
-#: order/models.py:878
+#: order/models.py:936
 msgid "Item quantity"
 msgstr ""
 
-#: order/models.py:884
+#: order/models.py:942
 msgid "Line item reference"
 msgstr ""
 
-#: order/models.py:886
+#: order/models.py:944
 msgid "Line item notes"
 msgstr ""
 
-#: order/models.py:891
+#: order/models.py:949
 msgid "Target shipping date for this line item"
 msgstr ""
 
-#: order/models.py:909
+#: order/models.py:967
 msgid "Context"
 msgstr ""
 
-#: order/models.py:910
+#: order/models.py:968
 msgid "Additional context for this line"
 msgstr ""
 
-#: order/models.py:918
+#: order/models.py:976
 msgid "Unit price"
 msgstr ""
 
-#: order/models.py:951
+#: order/models.py:1009
 msgid "Supplier part must match supplier"
 msgstr ""
 
-#: order/models.py:958
+#: order/models.py:1016
 msgid "deleted"
 msgstr ""
 
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
 msgid "Order"
 msgstr ""
 
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
 msgid "Purchase Order"
 msgstr ""
 
-#: order/models.py:984
+#: order/models.py:1042
 msgid "Supplier part"
 msgstr ""
 
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
 msgstr ""
 
-#: order/models.py:992
+#: order/models.py:1050
 msgid "Number of items received"
 msgstr ""
 
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1900
 msgid "Purchase Price"
 msgstr ""
 
-#: order/models.py:1000
+#: order/models.py:1058
 msgid "Unit purchase price"
 msgstr ""
 
-#: order/models.py:1008
+#: order/models.py:1066
 msgid "Where does the Purchaser want this item to be stored?"
 msgstr ""
 
-#: order/models.py:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
 #: part/templates/part/prices.html:119 part/templates/part/prices.html:288
 msgid "Sale Price"
 msgstr ""
 
-#: order/models.py:1079
+#: order/models.py:1137
 msgid "Unit sale price"
 msgstr ""
 
-#: order/models.py:1084
+#: order/models.py:1142
 msgid "Shipped quantity"
 msgstr ""
 
-#: order/models.py:1171
+#: order/models.py:1229
 msgid "Date of shipment"
 msgstr ""
 
-#: order/models.py:1178
+#: order/models.py:1236
 msgid "Checked By"
 msgstr ""
 
-#: order/models.py:1179
+#: order/models.py:1237
 msgid "User who checked this shipment"
 msgstr ""
 
-#: order/models.py:1187
+#: order/models.py:1245
 msgid "Shipment number"
 msgstr ""
 
-#: order/models.py:1194
+#: order/models.py:1252
 msgid "Shipment notes"
 msgstr ""
 
-#: order/models.py:1201
+#: order/models.py:1259
 msgid "Tracking Number"
 msgstr ""
 
-#: order/models.py:1202
+#: order/models.py:1260
 msgid "Shipment tracking information"
 msgstr ""
 
-#: order/models.py:1213
+#: order/models.py:1267
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1268
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1285
 msgid "Shipment has already been sent"
 msgstr ""
 
-#: order/models.py:1216
+#: order/models.py:1288
 msgid "Shipment has no allocated stock items"
 msgstr ""
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1395 order/models.py:1397
 msgid "Stock item has not been assigned"
 msgstr ""
 
-#: order/models.py:1317
+#: order/models.py:1401
 msgid "Cannot allocate stock item to a line with a different part"
 msgstr ""
 
-#: order/models.py:1319
+#: order/models.py:1403
 msgid "Cannot allocate stock to a line without a part"
 msgstr ""
 
-#: order/models.py:1322
+#: order/models.py:1406
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr ""
 
-#: order/models.py:1326
+#: order/models.py:1410
 msgid "StockItem is over-allocated"
 msgstr ""
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1416 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr ""
 
-#: order/models.py:1335
+#: order/models.py:1419
 msgid "Sales order does not match shipment"
 msgstr ""
 
-#: order/models.py:1336
+#: order/models.py:1420
 msgid "Shipment does not match sales order"
 msgstr ""
 
-#: order/models.py:1344
+#: order/models.py:1428
 msgid "Line"
 msgstr ""
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr ""
 
-#: order/models.py:1353
+#: order/models.py:1437
 msgid "Sales order shipment reference"
 msgstr ""
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr ""
 
-#: order/models.py:1366
+#: order/models.py:1450
 msgid "Select stock item to allocate"
 msgstr ""
 
-#: order/models.py:1369
+#: order/models.py:1453
 msgid "Enter stock allocation quantity"
 msgstr ""
 
@@ -3662,7 +3642,7 @@ msgstr ""
 msgid "Purchase order must match supplier"
 msgstr ""
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr ""
 
@@ -3674,11 +3654,11 @@ msgstr ""
 msgid "Select destination location for received items"
 msgstr ""
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr ""
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr ""
 
@@ -3714,35 +3694,35 @@ msgstr ""
 msgid "Sale price currency"
 msgstr ""
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr ""
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr ""
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr ""
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr ""
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr ""
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr ""
 
@@ -3832,7 +3812,12 @@ msgstr ""
 msgid "Total cost"
 msgstr ""
 
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
 msgid "Edit Purchase Order"
 msgstr ""
 
@@ -3863,9 +3848,9 @@ msgstr ""
 #: part/templates/part/import_wizard/ajax_match_references.html:42
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3929,7 +3914,7 @@ msgstr ""
 msgid "Order Notes"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
 msgid "Add Order Line"
 msgstr ""
 
@@ -3947,12 +3932,12 @@ msgid "Print packing list"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
 msgid "Complete Sales Order"
 msgstr ""
 
@@ -3961,7 +3946,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2471
 msgid "Customer Reference"
 msgstr ""
 
@@ -3971,7 +3956,7 @@ msgstr ""
 msgid "Completed Shipments"
 msgstr ""
 
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
 msgid "Edit Sales Order"
 msgstr ""
 
@@ -3985,7 +3970,7 @@ msgid "Pending Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
 msgid "Actions"
 msgstr ""
 
@@ -4113,7 +4098,7 @@ msgid "Part Category"
 msgstr ""
 
 #: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
 #: users/models.py:38
 msgid "Part Categories"
 msgstr ""
@@ -4124,7 +4109,7 @@ msgstr ""
 #: part/templates/part/category_sidebar.html:9
 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
 #: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
 #: templates/navbar.html:24 users/models.py:39
 msgid "Parts"
 msgstr ""
@@ -4202,7 +4187,7 @@ msgstr ""
 
 #: part/models.py:842 part/templates/part/part_base.html:266
 #: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
 msgid "IPN"
 msgstr ""
 
@@ -4316,7 +4301,7 @@ msgid "Test with this name already exists for this part"
 msgstr ""
 
 #: part/models.py:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
 msgid "Test Name"
 msgstr ""
 
@@ -4448,7 +4433,7 @@ msgid "BOM quantity for this BOM item"
 msgstr ""
 
 #: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
 #: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
@@ -4482,7 +4467,7 @@ msgid "BOM line checksum"
 msgstr ""
 
 #: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
 #: templates/js/translated/table_filters.js:68
 #: templates/js/translated/table_filters.js:88
 msgid "Inherited"
@@ -4493,7 +4478,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
 #: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
 msgid "Allow Variants"
 msgstr ""
 
@@ -4714,6 +4699,11 @@ msgstr ""
 msgid "New Part"
 msgstr ""
 
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr ""
+
 #: part/templates/part/category.html:172
 msgid "Set category"
 msgstr ""
@@ -4902,46 +4892,46 @@ msgstr ""
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
 msgid "Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
 msgid "Add Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
@@ -5084,8 +5074,8 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
 #: templates/js/translated/model_renderers.js:192
 #: templates/js/translated/part.js:581 templates/js/translated/part.js:658
 msgid "Inactive"
@@ -5101,20 +5091,22 @@ msgstr ""
 msgid "This part is a variant of %(link)s"
 msgstr ""
 
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr ""
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr ""
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
 msgid "Can Build"
 msgstr ""
 
@@ -5133,7 +5125,7 @@ msgid "Latest Serial Number"
 msgstr ""
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr ""
 
@@ -5172,7 +5164,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -5291,7 +5283,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
 msgid "Supplier Cost"
 msgstr ""
 
@@ -5530,7 +5522,7 @@ msgstr ""
 msgid "Barcode associated with Stock Item"
 msgstr ""
 
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
 msgid "Label printing failed"
 msgstr ""
 
@@ -5770,12 +5762,12 @@ msgid "Stock Item Test Report"
 msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr ""
 
@@ -5796,7 +5788,7 @@ msgstr ""
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
 msgid "Date"
 msgstr ""
 
@@ -5815,7 +5807,7 @@ msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2589
 msgid "Serial"
 msgstr ""
 
@@ -5832,7 +5824,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr ""
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr ""
 
@@ -5894,7 +5886,7 @@ msgstr ""
 msgid "Packaging this stock item is stored in"
 msgstr ""
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr ""
 
@@ -5934,8 +5926,8 @@ msgstr ""
 msgid "Destination Sales Order"
 msgstr ""
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1816
 msgid "Expiry Date"
 msgstr ""
 
@@ -6215,11 +6207,11 @@ msgstr ""
 msgid "Installed Stock Items"
 msgstr ""
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
 msgid "Install Stock Item"
 msgstr ""
 
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
 msgid "Add Test Result"
 msgstr ""
 
@@ -6311,110 +6303,114 @@ msgstr ""
 msgid "Delete stock item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:244
-msgid "This stock item has not passed all required tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:252
-msgid "This stock item is allocated to Sales Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr ""
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:284
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:292
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1693
+msgid "No location set"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1832
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr ""
 
@@ -6486,8 +6482,8 @@ msgstr ""
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:198 users/models.py:40
 msgid "Stock Locations"
 msgstr ""
 
@@ -6539,7 +6535,7 @@ msgstr ""
 msgid "Child Items"
 msgstr ""
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr ""
 
@@ -6564,55 +6560,55 @@ msgstr ""
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr ""
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr ""
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr ""
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr ""
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr ""
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr ""
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr ""
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr ""
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr ""
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr ""
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr ""
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr ""
 
@@ -7331,9 +7327,9 @@ msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr ""
@@ -7602,14 +7598,14 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
 #: templates/js/translated/part.js:530
 #: templates/js/translated/table_filters.js:178
 msgid "Available"
@@ -7644,67 +7640,67 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
-#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
 msgid "No Response"
 msgstr ""
 
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
 msgid "No response from the InvenTree server"
 msgstr ""
 
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
 msgid "Error 400: Bad request"
 msgstr ""
 
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
 msgid "API request returned error code 400"
 msgstr ""
 
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
 msgid "Error 401: Not Authenticated"
 msgstr ""
 
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
 msgid "Authentication credentials not supplied"
 msgstr ""
 
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
 msgid "Error 403: Permission Denied"
 msgstr ""
 
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
 msgid "You do not have the required permissions to access this function"
 msgstr ""
 
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
 msgid "Error 404: Resource Not Found"
 msgstr ""
 
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
 msgid "The requested resource could not be located on the server"
 msgstr ""
 
-#: templates/js/translated/api.js:217
+#: templates/js/translated/api.js:262
 msgid "Error 405: Method Not Allowed"
 msgstr ""
 
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
 msgid "HTTP method not allowed at URL"
 msgstr ""
 
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
 msgid "Error 408: Timeout"
 msgstr ""
 
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
 msgid "Connection timeout while requesting data from server"
 msgstr ""
 
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
 msgid "Unhandled Error Code"
 msgstr ""
 
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
 msgid "Error code"
 msgstr ""
 
@@ -7765,7 +7761,7 @@ msgid "Unknown response from server"
 msgstr ""
 
 #: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "Invalid server response"
 msgstr ""
 
@@ -7847,12 +7843,12 @@ msgid "Download BOM Template"
 msgstr ""
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
 msgid "Format"
 msgstr ""
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr ""
 
@@ -7932,84 +7928,84 @@ msgstr ""
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
 msgid "Load BOM for subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
 msgid "No Stock Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
 msgid "Includes variant and substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
 #: templates/js/translated/part.js:690
 msgid "Includes variant stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
 msgid "Includes substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -8131,262 +8127,270 @@ msgstr ""
 msgid "Location not specified"
 msgstr ""
 
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
 msgid "No active build outputs found"
 msgstr ""
 
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
 msgid "Allocated Stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
 msgid "No tracked BOM items for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
 msgid "Completed Tests"
 msgstr ""
 
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
 msgid "No required tests for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
 msgid "Edit stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
 msgid "Delete stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
 msgid "Edit Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
 msgid "Remove Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
 msgid "Substitute parts available"
 msgstr ""
 
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
 msgid "Quantity Per"
 msgstr ""
 
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
 msgid "Insufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
 msgid "Sufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
 msgid "Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
 msgid "Build stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
 msgid "Order stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
 msgid "Allocate stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr ""
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
 msgid "You must select at least one part to allocate"
 msgstr ""
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
 msgid "All Parts Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
 msgid "All selected parts have been fully allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
 msgid "Select source location (leave blank to take from all locations)"
 msgstr ""
 
-#: templates/js/translated/build.js:2117
+#: templates/js/translated/build.js:2100
 msgid "Allocate Stock Items to Build Order"
 msgstr ""
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
 msgid "No matching stock locations"
 msgstr ""
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
 msgid "No matching stock items"
 msgstr ""
 
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
 msgid "Automatic Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
 msgstr ""
 
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
 msgid "If a location is specifed, stock will only be allocated from that location"
 msgstr ""
 
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
 msgstr ""
 
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
 msgstr ""
 
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
 msgid "Allocate Stock Items"
 msgstr ""
 
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
 msgid "Select"
 msgstr ""
 
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
 msgid "Build order is overdue"
 msgstr ""
 
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
 msgid "Progress"
 msgstr ""
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
 msgid "No information"
 msgstr ""
 
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
 msgid "No parts allocated for"
 msgstr ""
 
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
 msgid "Add Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
 msgid "Edit Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:342
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr ""
+
+#: templates/js/translated/company.js:595
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
 #: templates/js/translated/part.js:650
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
 #: templates/js/translated/part.js:654
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
 msgid "No supplier parts found"
 msgstr ""
 
@@ -8424,61 +8428,61 @@ msgstr ""
 msgid "Create filter"
 msgstr ""
 
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
 msgid "Action Prohibited"
 msgstr ""
 
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
 msgid "Create operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
 msgid "Update operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
 msgid "Delete operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
 msgid "View operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
 msgid "Keep this form open"
 msgstr ""
 
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
 msgid "Enter a valid number"
 msgstr ""
 
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
 #: templates/modals.html:43
 msgid "Form errors exist"
 msgstr ""
 
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
 msgid "No results found"
 msgstr ""
 
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
 msgid "Searching"
 msgstr ""
 
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
 msgid "Clear input"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "File Column"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "Field Name"
 msgstr ""
 
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
 msgid "Select Columns"
 msgstr ""
 
@@ -8552,62 +8556,62 @@ msgstr ""
 msgid "Select Label Template"
 msgstr ""
 
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
 msgid "Cancel"
 msgstr ""
 
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
 #: templates/modals.html:28 templates/modals.html:51
 msgid "Submit"
 msgstr ""
 
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
 msgid "Form Title"
 msgstr ""
 
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
 msgid "Waiting for server..."
 msgstr ""
 
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
 msgid "Show Error Information"
 msgstr ""
 
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
 msgid "Accept"
 msgstr ""
 
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
 msgid "Loading Data"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Invalid response from server"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Form data missing from server response"
 msgstr ""
 
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
 msgid "Error posting form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "JSON response missing form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
 msgid "Error 400: Bad Request"
 msgstr ""
 
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
 msgid "Server returned error code 400"
 msgstr ""
 
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
 msgid "Error requesting form data"
 msgstr ""
 
@@ -8665,377 +8669,381 @@ msgstr ""
 msgid "Notifications will load here"
 msgstr ""
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
 msgstr ""
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
 msgstr ""
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr ""
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr ""
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr ""
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr ""
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr ""
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr ""
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr ""
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr ""
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr ""
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr ""
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr ""
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
 msgid "Stock Status"
 msgstr ""
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr ""
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr ""
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr ""
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
 msgid "Order is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
 msgid "Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
 msgid "Duplicate Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
 msgid "Edit Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
 msgid "Delete Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1856
 msgid "No line items found"
 msgstr ""
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
 msgid "Total"
 msgstr ""
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
 msgid "Total Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
 msgid "Duplicate line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
 msgid "Edit line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
 msgid "Delete line item"
 msgstr ""
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
 msgid "Duplicate line"
 msgstr ""
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
 msgid "Edit line"
 msgstr ""
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
 msgid "Delete line"
 msgstr ""
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
 msgid "Duplicate Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
 msgid "Edit Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
 msgid "Delete Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2279
 msgid "No matching line"
 msgstr ""
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2392
 msgid "No sales orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2462
 msgid "Invalid Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2549
 msgid "Edit shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2552
 msgid "Complete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2557
 msgid "Delete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2577
 msgid "Edit Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2594
 msgid "Delete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2628
 msgid "No matching shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2638
 msgid "Shipment Reference"
 msgstr ""
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2662
 msgid "Not shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2668
 msgid "Tracking"
 msgstr ""
 
-#: templates/js/translated/order.js:2603
+#: templates/js/translated/order.js:2672
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:2841
 msgid "Add Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2892
 msgid "Confirm stock allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2893
 msgid "Allocate Stock Items to Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:3101
 msgid "No sales order allocations found"
 msgstr ""
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:3182
 msgid "Edit Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:3199
 msgid "Confirm Delete Operation"
 msgstr ""
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:3200
 msgid "Delete Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
 msgid "Shipped to customer"
 msgstr ""
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
 msgid "Stock location not specified"
 msgstr ""
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3623
 msgid "Allocate serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3629
 msgid "Purchase stock"
 msgstr ""
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
 msgid "Calculate price"
 msgstr ""
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3648
 msgid "Cannot be deleted as items have been shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3651
 msgid "Cannot be deleted as items have been allocated"
 msgstr ""
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3733
 msgid "Allocate Serial Numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3842
 msgid "Update Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3856
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:4092
 msgid "No matching lines"
 msgstr ""
 
@@ -9217,7 +9225,7 @@ msgid "No category"
 msgstr ""
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2238
 msgid "Display as list"
 msgstr ""
 
@@ -9225,7 +9233,7 @@ msgstr ""
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
 msgid "Display as tree"
 msgstr ""
 
@@ -9233,7 +9241,7 @@ msgstr ""
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
 msgid "Path"
 msgstr ""
 
@@ -9241,12 +9249,12 @@ msgstr ""
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
 msgid "Delete test result"
 msgstr ""
 
@@ -9367,11 +9375,11 @@ msgstr ""
 msgid "Sales Order(s) must be selected before printing report"
 msgstr ""
 
-#: templates/js/translated/search.js:307
+#: templates/js/translated/search.js:352
 msgid "Minimize results"
 msgstr ""
 
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:355
 msgid "Remove results"
 msgstr ""
 
@@ -9531,204 +9539,204 @@ msgstr ""
 msgid "Confirm stock adjustment"
 msgstr ""
 
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
 msgid "PASS"
 msgstr ""
 
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
 msgid "FAIL"
 msgstr ""
 
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
 msgid "NO RESULT"
 msgstr ""
 
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
 msgid "Pass test"
 msgstr ""
 
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
 msgid "Add test result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
 msgid "No test results found"
 msgstr ""
 
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
 msgid "Test Date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
 msgid "Edit Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
 msgid "Delete Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
 msgid "In production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
 msgid "Installed in Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
 msgid "Assigned to Sales Order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
 msgid "No stock location set"
 msgstr ""
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1712
 msgid "Stock item is in production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1717
 msgid "Stock item assigned to sales order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1720
 msgid "Stock item assigned to customer"
 msgstr ""
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr ""
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr ""
-
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
 msgid "Serialized stock item has been allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
 msgid "Stock item has been fully allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
 msgid "Stock item has been partially allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1730
 msgid "Stock item has been installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1734
+msgid "Stock item has expired"
+msgstr ""
+
+#: templates/js/translated/stock.js:1736
+msgid "Stock item will expire soon"
+msgstr ""
+
+#: templates/js/translated/stock.js:1743
 msgid "Stock item has been rejected"
 msgstr ""
 
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1745
 msgid "Stock item is lost"
 msgstr ""
 
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1747
 msgid "Stock item is destroyed"
 msgstr ""
 
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1751
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr ""
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1802
 msgid "Stocktake"
 msgstr ""
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1884
 msgid "Supplier part not specified"
 msgstr ""
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1922
 msgid "No stock items matching query"
 msgstr ""
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2095
 msgid "Set Stock Status"
 msgstr ""
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2109
 msgid "Select Status Code"
 msgstr ""
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2110
 msgid "Status code must be selected"
 msgstr ""
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2365
 msgid "Details"
 msgstr ""
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2381
 msgid "Part information unavailable"
 msgstr ""
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2403
 msgid "Location no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2422
 msgid "Purchase order no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
 msgid "Customer no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2459
 msgid "Stock item no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2482
 msgid "Added"
 msgstr ""
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2490
 msgid "Removed"
 msgstr ""
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2566
 msgid "No installed items"
 msgstr ""
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
 msgid "Uninstall Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2666
 msgid "Select stock item to uninstall"
 msgstr ""
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2687
 msgid "Install another stock item into this item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2688
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr ""
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2690
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2691
 msgid "The Stock Item is currently available in stock"
 msgstr ""
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2692
 msgid "The Stock Item is not already installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2693
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr ""
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2706
 msgid "Select part to install"
 msgstr ""
 
@@ -9960,69 +9968,81 @@ msgstr ""
 msgid "Purchasable"
 msgstr ""
 
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr ""
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr ""
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
 msgid "Export Table Data"
 msgstr ""
 
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
 msgid "Select File Format"
 msgstr ""
 
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
 msgid "Loading data"
 msgstr ""
 
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
 msgid "rows per page"
 msgstr ""
 
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
 msgid "Showing all rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "Showing"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "to"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "of"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
 #: templates/search.html:8 templates/search_form.html:6
 #: templates/search_form.html:7
 msgid "Search"
 msgstr ""
 
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
 msgid "No matching results"
 msgstr ""
 
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
 msgid "Hide/Show pagination"
 msgstr ""
 
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
 msgid "Refresh"
 msgstr ""
 
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
 msgid "Toggle"
 msgstr ""
 
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
 msgid "Columns"
 msgstr ""
 
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
 msgid "All"
 msgstr ""
 
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index e8920ec375..722c2cc185 100644
--- a/InvenTree/locale/it/LC_MESSAGES/django.po
+++ b/InvenTree/locale/it/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
-"PO-Revision-Date: 2022-05-24 01:42\n"
+"POT-Creation-Date: 2022-05-28 23:41+0000\n"
+"PO-Revision-Date: 2022-05-29 01:47\n"
 "Last-Translator: \n"
 "Language-Team: Italian\n"
 "Language: it_IT\n"
@@ -21,7 +21,7 @@ msgstr ""
 msgid "API endpoint not found"
 msgstr "Endpoint API non trovato"
 
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
 msgid "Error details can be found in the admin panel"
 msgstr ""
 
@@ -30,7 +30,7 @@ msgid "Enter date"
 msgstr "Inserisci la data"
 
 #: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
 msgid "Confirm"
 msgstr "Conferma"
 
@@ -79,7 +79,7 @@ msgstr "È necessario digitare la stessa e-mail ogni volta."
 msgid "Duplicate serial: {sn}"
 msgstr "Seriale duplicato: {sn}"
 
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
 msgid "Invalid quantity provided"
 msgstr "Quantità inserita non valida"
 
@@ -134,10 +134,12 @@ msgid "Select file to attach"
 msgstr "Seleziona file da allegare"
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:139 order/models.py:1273
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr "Collegamento"
 
@@ -159,7 +161,7 @@ msgstr "Commento del file"
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2513
 msgid "User"
 msgstr "Utente"
 
@@ -205,9 +207,10 @@ msgstr "Scelta non valida"
 #: templates/InvenTree/settings/plugin.html:132
 #: templates/InvenTree/settings/plugin_settings.html:23
 #: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2283
 msgid "Name"
 msgstr "Nome"
 
@@ -216,22 +219,22 @@ msgstr "Nome"
 #: company/models.py:575 company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
 #: part/templates/part/part_base.html:167
 #: part/templates/part/set_category.html:14 report/models.py:182
 #: report/models.py:547 report/models.py:586
 #: report/templates/report/inventree_build_order_base.html:118
 #: stock/templates/stock/location.html:103
 #: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
 msgid "Description"
 msgstr "Descrizione"
 
@@ -406,7 +409,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:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
 msgid "Pending"
 msgstr "In attesa"
 
@@ -414,141 +417,145 @@ msgstr "In attesa"
 msgid "Placed"
 msgstr "Inviato"
 
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
 #: order/templates/order/order_base.html:134
 #: order/templates/order/sales_order_base.html:133
 msgid "Complete"
 msgstr "Completo"
 
 #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
 msgid "Cancelled"
 msgstr "Annullato"
 
 #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
 msgid "Lost"
 msgstr "Perso"
 
 #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
 msgid "Returned"
 msgstr "Reso"
 
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
 msgid "Shipped"
 msgstr "Spedito"
 
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
 msgid "OK"
 msgstr "OK"
 
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
 msgid "Attention needed"
 msgstr "Attenzione necessaria"
 
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
 msgid "Damaged"
 msgstr "Danneggiato"
 
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
 msgid "Destroyed"
 msgstr "Distrutto"
 
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
 msgid "Rejected"
 msgstr "Respinto"
 
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
 msgid "Legacy stock tracking entry"
 msgstr "Voce di tracciamento stock preesistente"
 
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
 msgid "Stock item created"
 msgstr "Elemento stock creato"
 
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
 msgid "Edited stock item"
 msgstr "Elemento stock modificato"
 
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
 msgid "Assigned serial number"
 msgstr "Numero di serie assegnato"
 
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
 msgid "Stock counted"
 msgstr "Stock contato"
 
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
 msgid "Stock manually added"
 msgstr "Stock aggiunto manualmente"
 
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
 msgid "Stock manually removed"
 msgstr "Stock rimosso manualmente"
 
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
 msgid "Location changed"
 msgstr "Posizione cambiata"
 
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
 msgid "Installed into assembly"
 msgstr "Installato nell'assemblaggio"
 
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
 msgid "Removed from assembly"
 msgstr "Rimosso dall'assemblaggio"
 
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
 msgid "Installed component item"
 msgstr "Componente installato"
 
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
 msgid "Removed component item"
 msgstr "Elemento componente rimosso"
 
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
 msgid "Split from parent item"
 msgstr "Diviso dall'elemento genitore"
 
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
 msgid "Split child item"
 msgstr "Dividi elemento figlio"
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
 msgid "Merged stock items"
 msgstr "Elemento stock raggruppato"
 
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
 msgid "Converted to variant"
 msgstr "Convertito in variante"
 
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
 msgid "Sent to customer"
 msgstr "Inviato al cliente"
 
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
 msgid "Returned from customer"
 msgstr "Restituito dal cliente"
 
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
 msgid "Build order output created"
 msgstr "Genera l'output dell'ordine creato"
 
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
 msgid "Build order output completed"
 msgstr "Build order output completato"
 
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
 msgid "Consumed by build order"
 msgstr ""
 
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
 msgid "Received against purchase order"
 msgstr "Ricevuto contro l'ordine di acquisto"
 
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
 msgid "Production"
 msgstr "Produzione"
 
@@ -637,15 +644,15 @@ msgstr "Ordini di Produzione"
 msgid "Build Order Reference"
 msgstr ""
 
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
 #: part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
 msgid "Reference"
 msgstr "Riferimento"
 
@@ -664,7 +671,7 @@ msgstr ""
 
 #: build/models.py:225 build/templates/build/build_base.html:77
 #: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
 #: part/models.py:2303 part/models.py:2319 part/models.py:2338
 #: part/models.py:2355 part/models.py:2457 part/models.py:2579
 #: part/models.py:2669 part/models.py:2760 part/models.py:3050
@@ -679,19 +686,21 @@ msgstr ""
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
 #: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
 msgid "Part"
 msgstr "Articolo"
 
@@ -708,7 +717,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr ""
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
 msgid "Source Location"
 msgstr "Posizione Di Origine"
 
@@ -749,7 +758,7 @@ msgid "Build status code"
 msgstr ""
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr "Codice Lotto"
 
@@ -757,12 +766,12 @@ msgstr "Codice Lotto"
 msgid "Batch code for this build output"
 msgstr ""
 
-#: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
 msgid "Creation Date"
 msgstr "Data di creazione"
 
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
 msgid "Target completion date"
 msgstr "Data completamento obiettivo"
 
@@ -770,8 +779,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:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
 msgid "Completion Date"
 msgstr "Data di completamento"
 
@@ -779,7 +788,7 @@ msgstr "Data di completamento"
 msgid "completed by"
 msgstr "Completato da"
 
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
 msgid "Issued by"
 msgstr "Rilasciato da"
 
@@ -788,11 +797,11 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
 msgid "Responsible"
 msgstr "Responsabile"
 
@@ -804,14 +813,14 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr "Collegamento esterno"
 
 #: build/models.py:334 build/serializers.py:390
 #: build/templates/build/sidebar.html:21 company/models.py:134
 #: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
 #: order/templates/order/po_sidebar.html:11
 #: order/templates/order/so_sidebar.html:17 part/models.py:983
 #: part/templates/part/part_sidebar.html:59
@@ -820,11 +829,11 @@ msgstr "Collegamento esterno"
 #: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
 msgid "Notes"
 msgstr "Note"
 
@@ -857,7 +866,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:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1413
 msgid "Allocation quantity must be greater than zero"
 msgstr "La quantità di assegnazione deve essere maggiore di zero"
 
@@ -869,8 +878,8 @@ msgstr "La quantità deve essere 1 per lo stock serializzato"
 msgid "Selected stock item not found in BOM"
 msgstr "Articolo in giacenza selezionato non trovato nel BOM"
 
-#: build/models.py:1375 stock/templates/stock/item_base.html:335
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
 #: templates/navbar.html:38
 msgid "Build"
 msgstr "Produzione"
@@ -879,18 +888,18 @@ msgstr "Produzione"
 msgid "Build to allocate parts"
 msgstr ""
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2449
 msgid "Stock Item"
 msgstr "Articoli in magazzino"
 
@@ -902,10 +911,10 @@ msgstr "Origine giacenza articolo"
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_build_order_base.html:114
@@ -913,25 +922,24 @@ msgstr "Origine giacenza articolo"
 #: 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
 msgid "Quantity"
 msgstr "Quantità"
 
@@ -948,7 +956,7 @@ msgid "Destination stock item"
 msgstr "Destinazione articolo in giacenza"
 
 #: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
 msgid "Build Output"
 msgstr ""
 
@@ -972,7 +980,7 @@ msgstr ""
 msgid "Enter quantity for build output"
 msgstr "Inserisci la quantità per l'output di compilazione"
 
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
 #: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
 #: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
 #: stock/serializers.py:294
@@ -987,8 +995,8 @@ msgstr ""
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr ""
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr "Codice Seriale"
@@ -1015,15 +1023,15 @@ msgstr ""
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
 msgid "Location"
 msgstr "Posizione"
 
@@ -1032,12 +1040,12 @@ msgid "Location for completed build outputs"
 msgstr "Posizione per gli output di build completati"
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: build/templates/build/detail.html:62 order/models.py:663
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
 msgid "Status"
 msgstr "Stato"
 
@@ -1118,7 +1126,7 @@ msgstr ""
 msgid "Item must be in stock"
 msgstr "L'articolo deve essere disponibile"
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr "Quantità disponibile ({q}) superata"
@@ -1135,7 +1143,7 @@ msgstr ""
 msgid "This stock item has already been allocated to this build output"
 msgstr ""
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr "Deve essere indicata l'allocazione dell'articolo"
 
@@ -1233,13 +1241,13 @@ msgid "Stock has not been fully allocated to this Build Order"
 msgstr ""
 
 #: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr "Data scadenza"
 
@@ -1266,14 +1274,14 @@ msgid "Completed"
 msgstr "Completato"
 
 #: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2436
 msgid "Sales Order"
 msgstr "Ordini di Vendita"
 
@@ -1308,8 +1316,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:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
 msgid "Destination"
 msgstr "Destinazione"
 
@@ -1322,11 +1330,11 @@ msgid "Allocated Parts"
 msgstr ""
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
-#: templates/js/translated/build.js:1184
+#: stock/templates/stock/item_base.html:170
+#: templates/js/translated/build.js:1179
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1335,7 +1343,7 @@ msgstr "Lotto"
 #: build/templates/build/detail.html:126
 #: order/templates/order/order_base.html:149
 #: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
 msgid "Created"
 msgstr "Creato"
 
@@ -1355,7 +1363,7 @@ msgstr ""
 msgid "Allocate Stock to Build"
 msgstr ""
 
-#: build/templates/build/detail.html:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
 msgid "Unallocate stock"
 msgstr ""
 
@@ -1385,8 +1393,8 @@ msgstr "Ordina articoli richiesti"
 
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: company/templates/company/detail.html:85
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr "Ordine Articoli"
 
@@ -1461,8 +1469,8 @@ msgid "Completed Build Outputs"
 msgstr ""
 
 #: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
 #: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:82
 #: order/templates/order/sales_order_detail.html:129
@@ -1476,11 +1484,11 @@ msgstr "Allegati"
 msgid "Build Notes"
 msgstr "Genera Note"
 
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
 msgid "Allocation Complete"
 msgstr "Assegnazione Completa"
 
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
 msgid "All untracked stock items have been allocated"
 msgstr "Tutte le giacenze non tracciate sono state assegnate"
 
@@ -1492,18 +1500,6 @@ msgstr ""
 msgid "Print Build Orders"
 msgstr ""
 
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr "Visualizzazione calendario"
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr "Visualizzazione elenco"
-
 #: build/templates/build/sidebar.html:5
 msgid "Build Order Details"
 msgstr ""
@@ -1727,7 +1723,7 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr "Gli articoli sono modelli per impostazione predefinita"
 
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
 #: templates/js/translated/table_filters.js:168
 #: templates/js/translated/table_filters.js:460
 msgid "Assembly"
@@ -2413,7 +2409,7 @@ msgid "Price break quantity"
 msgstr ""
 
 #: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: company/templates/company/supplier_part.html:263 order/models.py:975
 #: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
 msgid "Price"
 msgstr "Prezzo"
@@ -2556,7 +2552,7 @@ msgstr "Descrizione dell'azienda"
 
 #: company/models.py:104 company/templates/company/company_base.html:100
 #: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
 msgid "Website"
 msgstr "Sito Web"
 
@@ -2651,10 +2647,11 @@ msgstr "Seleziona articolo"
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: stock/templates/stock/item_base.html:212
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
 #: templates/js/translated/table_filters.js:411
 msgid "Manufacturer"
 msgstr "Produttore"
@@ -2665,8 +2662,10 @@ msgstr "Seleziona Produttore"
 
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr "Codice articolo produttore (MPN)"
@@ -2686,7 +2685,7 @@ msgstr "Descrizione articolo costruttore"
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr "Codice articolo produttore"
 
@@ -2696,8 +2695,9 @@ msgstr "Nome parametro"
 
 #: company/models.py:427
 #: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
 msgid "Value"
 msgstr "Valore"
 
@@ -2708,7 +2708,7 @@ msgstr "Valore del parametro"
 #: company/models.py:434 part/models.py:940 part/models.py:2549
 #: part/templates/part/part_base.html:280
 #: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
 msgid "Units"
 msgstr "Unità"
 
@@ -2721,11 +2721,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:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: stock/templates/stock/item_base.html:229
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2736,8 +2737,9 @@ msgid "Select supplier"
 msgstr "Seleziona fornitore"
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
 msgid "SKU"
 msgstr ""
 
@@ -2773,8 +2775,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr "Onere minimo (ad esempio tassa di stoccaggio)"
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
 msgid "Packaging"
 msgstr "Confezionamento"
 
@@ -2804,12 +2806,12 @@ msgstr "Codice valuta"
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
 msgid "Company"
 msgstr "Azienda"
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr "Crea ordine d'acquisto"
 
@@ -2822,7 +2824,7 @@ msgid "Edit company information"
 msgstr "Modifica le informazioni dell'azienda"
 
 #: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
 msgid "Edit Company"
 msgstr "Modifica azienda"
 
@@ -2845,12 +2847,12 @@ msgstr "Carica nuova immagine"
 msgid "Download image from URL"
 msgstr "Scarica immagine dall'URL"
 
-#: company/templates/company/company_base.html:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr "Cliente"
@@ -2869,7 +2871,7 @@ msgid "Upload Image"
 msgstr "Carica immagine"
 
 #: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
+#: company/templates/company/manufacturer_part_sidebar.html:7
 #: templates/InvenTree/search.html:118
 msgid "Supplier Parts"
 msgstr "Articoli fornitore"
@@ -2884,28 +2886,19 @@ msgstr "Crea nuovo fornitore"
 msgid "New Supplier Part"
 msgstr "Nuovo fornitore articolo"
 
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr "Opzioni"
-
 #: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
 #: part/templates/part/category.html:176
 msgid "Order parts"
 msgstr "Articoli ordinati"
 
 #: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
 msgid "Delete parts"
 msgstr "Cancella articoli"
 
 #: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
 msgid "Delete Parts"
 msgstr "Cancella articoli"
 
@@ -2917,88 +2910,76 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
 msgid "New Manufacturer Part"
 msgstr ""
 
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
 msgid "Supplier Stock"
 msgstr "Giacenza Fornitore"
 
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
 #: company/templates/company/sidebar.html:12
 #: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
 #: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:235 templates/navbar.html:50
 #: users/models.py:43
 msgid "Purchase Orders"
 msgstr "Ordine di acquisto"
 
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
 #: order/templates/order/purchase_orders.html:17
 msgid "Create new purchase order"
 msgstr ""
 
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr ""
 
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
 #: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
 #: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
 #: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:259 templates/navbar.html:61
 #: users/models.py:44
 msgid "Sales Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
 #: order/templates/order/sales_orders.html:20
 msgid "Create new sales order"
 msgstr ""
 
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
 #: order/templates/order/sales_orders.html:21
 msgid "New Sales Order"
 msgstr ""
 
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
 msgid "Assigned Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
 msgid "Company Notes"
 msgstr ""
 
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr "Elimina articoli fornitore?"
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr "Tutte gli articoli del fornitore selezionati saranno eliminati"
-
 #: company/templates/company/index.html:8
 msgid "Supplier List"
 msgstr "Elenco dei fornitori"
 
 #: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
 #: templates/navbar.html:49
 msgid "Manufacturers"
 msgstr "Produttori"
@@ -3011,12 +2992,12 @@ msgid "Order part"
 msgstr "Articoli ordinati"
 
 #: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -3032,55 +3013,46 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:119
 #: company/templates/company/supplier_part.html:15 company/views.py:41
 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
 msgid "Suppliers"
 msgstr "Fornitori"
 
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
 #: part/templates/part/detail.html:363
 msgid "Delete supplier parts"
 msgstr "Elimina articolo fornitore"
 
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
 msgid "Delete"
 msgstr "Elimina"
 
-#: company/templates/company/manufacturer_part.html:164
+#: company/templates/company/manufacturer_part.html:166
 #: company/templates/company/manufacturer_part_sidebar.html:5
 #: part/templates/part/category_sidebar.html:19
 #: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8
 msgid "Parameters"
 msgstr "Parametri"
 
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
 #: part/templates/part/detail.html:184
 #: templates/InvenTree/settings/category.html:12
 #: templates/InvenTree/settings/part.html:66
 msgid "New Parameter"
 msgstr "Nuovo Parametro"
 
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
 msgid "Delete parameters"
 msgstr "Elimina il parametro"
 
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
 msgid "Add Parameter"
 msgstr "Aggiungi parametro"
 
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr "Gli eventi selezionati verranno eliminati"
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr "Elimina Parametri"
-
 #: company/templates/company/sidebar.html:6
 msgid "Manufactured Parts"
 msgstr ""
@@ -3099,19 +3071,19 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
 msgid "Supplier Part"
 msgstr "Articolo Fornitore"
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
 msgid "Edit supplier part"
 msgstr "Modifica articolo fornitore"
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
 msgid "Delete supplier part"
 msgstr "Elimina articolo fornitore"
 
@@ -3186,11 +3158,11 @@ msgstr ""
 #: part/templates/part/part_sidebar.html:14
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
 #: templates/InvenTree/settings/sidebar.html:43
 #: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
 #: templates/navbar.html:31
 msgid "Stock"
 msgstr "Magazzino"
@@ -3216,8 +3188,8 @@ msgstr "Prezzi"
 #: stock/templates/stock/location.html:161
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
+#: templates/js/translated/stock.js:2307 users/models.py:41
 msgid "Stock Items"
 msgstr "Articoli in magazzino"
 
@@ -3229,7 +3201,7 @@ msgstr "Nuovo Fornitore"
 msgid "New Manufacturer"
 msgstr "Nuovo Produttore"
 
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
 #: templates/navbar.html:60
 msgid "Customers"
 msgstr "Clienti"
@@ -3238,7 +3210,7 @@ msgstr "Clienti"
 msgid "New Customer"
 msgstr "Nuovo cliente"
 
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:212
 msgid "Companies"
 msgstr "Aziende"
 
@@ -3328,305 +3300,313 @@ msgstr ""
 msgid "Part query filters (comma-separated value of key=value pairs)"
 msgstr ""
 
-#: order/models.py:130
+#: order/models.py:137
 msgid "Order description"
 msgstr "Descrizione ordine"
 
-#: order/models.py:132
+#: order/models.py:139 order/models.py:1274
 msgid "Link to external page"
 msgstr ""
 
-#: order/models.py:140
+#: order/models.py:147
 msgid "Created By"
 msgstr "Creato Da"
 
-#: order/models.py:147
+#: order/models.py:154
 msgid "User or group responsible for this order"
 msgstr "Utente o gruppo responsabile di questo ordine"
 
-#: order/models.py:152
+#: order/models.py:159
 msgid "Order notes"
 msgstr "Note ordine"
 
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
 msgid "Order reference"
 msgstr "Riferimento ordine"
 
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
 msgid "Purchase order status"
 msgstr "Stato ordine d'acquisto"
 
-#: order/models.py:253
+#: order/models.py:311
 msgid "Company from which the items are being ordered"
 msgstr "Azienda da cui sono stati ordinati gli articoli"
 
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
 msgid "Supplier Reference"
 msgstr "Riferimento fornitore"
 
-#: order/models.py:256
+#: order/models.py:314
 msgid "Supplier order reference code"
 msgstr "Codice di riferimento ordine fornitore"
 
-#: order/models.py:263
+#: order/models.py:321
 msgid "received by"
 msgstr "ricevuto da"
 
-#: order/models.py:268
+#: order/models.py:326
 msgid "Issue Date"
 msgstr "Data di emissione"
 
-#: order/models.py:269
+#: order/models.py:327
 msgid "Date order was issued"
 msgstr "Data di emissione ordine"
 
-#: order/models.py:274
+#: order/models.py:332
 msgid "Target Delivery Date"
 msgstr "Data di consegna programmata"
 
-#: order/models.py:275
+#: order/models.py:333
 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:281
+#: order/models.py:339
 msgid "Date order was completed"
 msgstr "Data ordine completato"
 
-#: order/models.py:310
+#: order/models.py:368
 msgid "Part supplier must match PO supplier"
 msgstr ""
 
-#: order/models.py:456
+#: order/models.py:514
 msgid "Quantity must be a positive number"
 msgstr ""
 
-#: order/models.py:601
+#: order/models.py:659
 msgid "Company to which the items are being sold"
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer Reference "
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer order reference code"
 msgstr ""
 
-#: order/models.py:612
+#: order/models.py:670
 msgid "Target date for order completion. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
 msgid "Shipment Date"
 msgstr ""
 
-#: order/models.py:622
+#: order/models.py:680
 msgid "shipped by"
 msgstr ""
 
-#: order/models.py:688
+#: order/models.py:746
 msgid "Order cannot be completed as no parts have been assigned"
 msgstr ""
 
-#: order/models.py:692
+#: order/models.py:750
 msgid "Only a pending order can be marked as complete"
 msgstr ""
 
-#: order/models.py:695
+#: order/models.py:753
 msgid "Order cannot be completed as there are incomplete shipments"
 msgstr ""
 
-#: order/models.py:698
+#: order/models.py:756
 msgid "Order cannot be completed as there are incomplete line items"
 msgstr ""
 
-#: order/models.py:878
+#: order/models.py:936
 msgid "Item quantity"
 msgstr ""
 
-#: order/models.py:884
+#: order/models.py:942
 msgid "Line item reference"
 msgstr ""
 
-#: order/models.py:886
+#: order/models.py:944
 msgid "Line item notes"
 msgstr ""
 
-#: order/models.py:891
+#: order/models.py:949
 msgid "Target shipping date for this line item"
 msgstr ""
 
-#: order/models.py:909
+#: order/models.py:967
 msgid "Context"
 msgstr ""
 
-#: order/models.py:910
+#: order/models.py:968
 msgid "Additional context for this line"
 msgstr ""
 
-#: order/models.py:918
+#: order/models.py:976
 msgid "Unit price"
 msgstr ""
 
-#: order/models.py:951
+#: order/models.py:1009
 msgid "Supplier part must match supplier"
 msgstr ""
 
-#: order/models.py:958
+#: order/models.py:1016
 msgid "deleted"
 msgstr ""
 
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
 msgid "Order"
 msgstr ""
 
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
 msgid "Purchase Order"
 msgstr ""
 
-#: order/models.py:984
+#: order/models.py:1042
 msgid "Supplier part"
 msgstr "Articolo Fornitore"
 
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
 msgstr ""
 
-#: order/models.py:992
+#: order/models.py:1050
 msgid "Number of items received"
 msgstr ""
 
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1900
 msgid "Purchase Price"
 msgstr ""
 
-#: order/models.py:1000
+#: order/models.py:1058
 msgid "Unit purchase price"
 msgstr ""
 
-#: order/models.py:1008
+#: order/models.py:1066
 msgid "Where does the Purchaser want this item to be stored?"
 msgstr ""
 
-#: order/models.py:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
 #: part/templates/part/prices.html:119 part/templates/part/prices.html:288
 msgid "Sale Price"
 msgstr ""
 
-#: order/models.py:1079
+#: order/models.py:1137
 msgid "Unit sale price"
 msgstr ""
 
-#: order/models.py:1084
+#: order/models.py:1142
 msgid "Shipped quantity"
 msgstr ""
 
-#: order/models.py:1171
+#: order/models.py:1229
 msgid "Date of shipment"
 msgstr ""
 
-#: order/models.py:1178
+#: order/models.py:1236
 msgid "Checked By"
 msgstr ""
 
-#: order/models.py:1179
+#: order/models.py:1237
 msgid "User who checked this shipment"
 msgstr ""
 
-#: order/models.py:1187
+#: order/models.py:1245
 msgid "Shipment number"
 msgstr ""
 
-#: order/models.py:1194
+#: order/models.py:1252
 msgid "Shipment notes"
 msgstr ""
 
-#: order/models.py:1201
+#: order/models.py:1259
 msgid "Tracking Number"
 msgstr ""
 
-#: order/models.py:1202
+#: order/models.py:1260
 msgid "Shipment tracking information"
 msgstr ""
 
-#: order/models.py:1213
+#: order/models.py:1267
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1268
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1285
 msgid "Shipment has already been sent"
 msgstr ""
 
-#: order/models.py:1216
+#: order/models.py:1288
 msgid "Shipment has no allocated stock items"
 msgstr ""
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1395 order/models.py:1397
 msgid "Stock item has not been assigned"
 msgstr ""
 
-#: order/models.py:1317
+#: order/models.py:1401
 msgid "Cannot allocate stock item to a line with a different part"
 msgstr ""
 
-#: order/models.py:1319
+#: order/models.py:1403
 msgid "Cannot allocate stock to a line without a part"
 msgstr ""
 
-#: order/models.py:1322
+#: order/models.py:1406
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr "La quantità di ripartizione non puo' superare la disponibilità della giacenza"
 
-#: order/models.py:1326
+#: order/models.py:1410
 msgid "StockItem is over-allocated"
 msgstr ""
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1416 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr ""
 
-#: order/models.py:1335
+#: order/models.py:1419
 msgid "Sales order does not match shipment"
 msgstr ""
 
-#: order/models.py:1336
+#: order/models.py:1420
 msgid "Shipment does not match sales order"
 msgstr ""
 
-#: order/models.py:1344
+#: order/models.py:1428
 msgid "Line"
 msgstr ""
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr ""
 
-#: order/models.py:1353
+#: order/models.py:1437
 msgid "Sales order shipment reference"
 msgstr ""
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr ""
 
-#: order/models.py:1366
+#: order/models.py:1450
 msgid "Select stock item to allocate"
 msgstr ""
 
-#: order/models.py:1369
+#: order/models.py:1453
 msgid "Enter stock allocation quantity"
 msgstr "Inserisci la quantità assegnata alla giacenza"
 
@@ -3662,7 +3642,7 @@ msgstr ""
 msgid "Purchase order must match supplier"
 msgstr ""
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr ""
 
@@ -3674,11 +3654,11 @@ msgstr ""
 msgid "Select destination location for received items"
 msgstr "Seleziona la posizione di destinazione per gli elementi ricevuti"
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr ""
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr ""
 
@@ -3714,35 +3694,35 @@ msgstr ""
 msgid "Sale price currency"
 msgstr ""
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr ""
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr ""
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr ""
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr ""
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr ""
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr ""
 
@@ -3832,7 +3812,12 @@ msgstr "Emesso"
 msgid "Total cost"
 msgstr ""
 
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
 msgid "Edit Purchase Order"
 msgstr "Modifica ordine d'acquisto"
 
@@ -3863,9 +3848,9 @@ msgstr "Seleziona l'articolo del fornitore"
 #: part/templates/part/import_wizard/ajax_match_references.html:42
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3929,7 +3914,7 @@ msgstr ""
 msgid "Order Notes"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
 msgid "Add Order Line"
 msgstr ""
 
@@ -3947,12 +3932,12 @@ msgid "Print packing list"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
 msgid "Complete Sales Order"
 msgstr ""
 
@@ -3961,7 +3946,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2471
 msgid "Customer Reference"
 msgstr ""
 
@@ -3971,7 +3956,7 @@ msgstr ""
 msgid "Completed Shipments"
 msgstr ""
 
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
 msgid "Edit Sales Order"
 msgstr ""
 
@@ -3985,7 +3970,7 @@ msgid "Pending Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
 msgid "Actions"
 msgstr ""
 
@@ -4113,7 +4098,7 @@ msgid "Part Category"
 msgstr "Categoria Articoli"
 
 #: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
 #: users/models.py:38
 msgid "Part Categories"
 msgstr "Categorie Articolo"
@@ -4124,7 +4109,7 @@ msgstr "Categorie Articolo"
 #: part/templates/part/category_sidebar.html:9
 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
 #: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
 #: templates/navbar.html:24 users/models.py:39
 msgid "Parts"
 msgstr "Articoli"
@@ -4202,7 +4187,7 @@ msgstr "Categoria articolo"
 
 #: part/models.py:842 part/templates/part/part_base.html:266
 #: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
 msgid "IPN"
 msgstr "IPN - Numero di riferimento interno"
 
@@ -4316,7 +4301,7 @@ msgid "Test with this name already exists for this part"
 msgstr ""
 
 #: part/models.py:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
 msgid "Test Name"
 msgstr ""
 
@@ -4448,7 +4433,7 @@ msgid "BOM quantity for this BOM item"
 msgstr ""
 
 #: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
 #: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
@@ -4482,7 +4467,7 @@ msgid "BOM line checksum"
 msgstr ""
 
 #: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
 #: templates/js/translated/table_filters.js:68
 #: templates/js/translated/table_filters.js:88
 msgid "Inherited"
@@ -4493,7 +4478,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
 #: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
 msgid "Allow Variants"
 msgstr "Consenti Le Varianti"
 
@@ -4714,6 +4699,11 @@ msgstr "Crea nuovo articolo"
 msgid "New Part"
 msgstr "Nuovo articolo"
 
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr "Opzioni"
+
 #: part/templates/part/category.html:172
 msgid "Set category"
 msgstr "Imposta categoria"
@@ -4902,46 +4892,46 @@ msgstr ""
 msgid "Part Suppliers"
 msgstr "Fornitori articoli"
 
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
 msgid "Part Manufacturers"
 msgstr "Componenti Produttori"
 
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
 msgid "Related Part"
 msgstr "Articoli correlati"
 
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
 msgid "Add Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
@@ -5084,8 +5074,8 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
 #: templates/js/translated/model_renderers.js:192
 #: templates/js/translated/part.js:581 templates/js/translated/part.js:658
 msgid "Inactive"
@@ -5101,20 +5091,22 @@ msgstr ""
 msgid "This part is a variant of %(link)s"
 msgstr ""
 
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr "In magazzino"
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr ""
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
 msgid "Can Build"
 msgstr ""
 
@@ -5133,7 +5125,7 @@ msgid "Latest Serial Number"
 msgstr ""
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr ""
 
@@ -5172,7 +5164,7 @@ msgid "Total Cost"
 msgstr "Costo Totale"
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -5291,7 +5283,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
 msgid "Supplier Cost"
 msgstr ""
 
@@ -5530,7 +5522,7 @@ msgstr ""
 msgid "Barcode associated with Stock Item"
 msgstr ""
 
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
 msgid "Label printing failed"
 msgstr ""
 
@@ -5770,12 +5762,12 @@ msgid "Stock Item Test Report"
 msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr ""
 
@@ -5796,7 +5788,7 @@ msgstr ""
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
 msgid "Date"
 msgstr "Data"
 
@@ -5815,7 +5807,7 @@ msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2589
 msgid "Serial"
 msgstr "Seriale"
 
@@ -5832,7 +5824,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr ""
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr ""
 
@@ -5894,7 +5886,7 @@ msgstr ""
 msgid "Packaging this stock item is stored in"
 msgstr ""
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr "Installato In"
 
@@ -5934,8 +5926,8 @@ msgstr ""
 msgid "Destination Sales Order"
 msgstr ""
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1816
 msgid "Expiry Date"
 msgstr "Data di Scadenza"
 
@@ -6215,11 +6207,11 @@ msgstr ""
 msgid "Installed Stock Items"
 msgstr ""
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
 msgid "Install Stock Item"
 msgstr ""
 
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
 msgid "Add Test Result"
 msgstr ""
 
@@ -6311,110 +6303,114 @@ msgstr ""
 msgid "Delete stock item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr "pagina precedente"
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr "pagina successiva"
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr "Ultimo aggiornamento"
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr "Ultimo Inventario"
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr "Nessun inventario eseguito"
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:244
-msgid "This stock item has not passed all required tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:252
-msgid "This stock item is allocated to Sales Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr "Nessuna posizione impostata"
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr ""
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:284
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:292
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr "pagina precedente"
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr "pagina successiva"
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1693
+msgid "No location set"
+msgstr "Nessuna posizione impostata"
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1832
+msgid "Last Updated"
+msgstr "Ultimo aggiornamento"
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr "Ultimo Inventario"
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr "Nessun inventario eseguito"
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr ""
 
@@ -6486,8 +6482,8 @@ msgstr "Non sei nell'elenco dei proprietari di questa posizione. Questa posizion
 msgid "Sublocations"
 msgstr "Sottoallocazioni"
 
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:198 users/models.py:40
 msgid "Stock Locations"
 msgstr "Posizioni magazzino"
 
@@ -6539,7 +6535,7 @@ msgstr ""
 msgid "Child Items"
 msgstr ""
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr ""
 
@@ -6564,55 +6560,55 @@ msgstr ""
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr ""
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr "QR Code della posizione magazzino"
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr ""
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr "Specificare una posizione valida"
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr ""
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr ""
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr ""
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr ""
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr ""
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr "Elimina Posizione di Giacenza"
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr ""
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr ""
 
@@ -7331,9 +7327,9 @@ msgstr "Informazioni Versione InvenTree"
 
 #: templates/about.html:11 templates/about.html:105
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr "Chiudi"
@@ -7602,14 +7598,14 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
 msgid "Required Quantity"
 msgstr "Quantità richiesta"
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
 #: templates/js/translated/part.js:530
 #: templates/js/translated/table_filters.js:178
 msgid "Available"
@@ -7644,67 +7640,67 @@ 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:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
 msgid "No Response"
 msgstr ""
 
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
 msgid "No response from the InvenTree server"
 msgstr ""
 
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
 msgid "Error 400: Bad request"
 msgstr ""
 
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
 msgid "API request returned error code 400"
 msgstr ""
 
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
 msgid "Error 401: Not Authenticated"
 msgstr ""
 
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
 msgid "Authentication credentials not supplied"
 msgstr ""
 
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
 msgid "Error 403: Permission Denied"
 msgstr ""
 
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
 msgid "You do not have the required permissions to access this function"
 msgstr ""
 
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
 msgid "Error 404: Resource Not Found"
 msgstr ""
 
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
 msgid "The requested resource could not be located on the server"
 msgstr ""
 
-#: templates/js/translated/api.js:217
+#: templates/js/translated/api.js:262
 msgid "Error 405: Method Not Allowed"
 msgstr ""
 
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
 msgid "HTTP method not allowed at URL"
 msgstr ""
 
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
 msgid "Error 408: Timeout"
 msgstr ""
 
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
 msgid "Connection timeout while requesting data from server"
 msgstr ""
 
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
 msgid "Unhandled Error Code"
 msgstr ""
 
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
 msgid "Error code"
 msgstr ""
 
@@ -7765,7 +7761,7 @@ msgid "Unknown response from server"
 msgstr ""
 
 #: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "Invalid server response"
 msgstr ""
 
@@ -7847,12 +7843,12 @@ msgid "Download BOM Template"
 msgstr ""
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
 msgid "Format"
 msgstr "Formato"
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr ""
 
@@ -7932,84 +7928,84 @@ msgstr ""
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
 msgid "Load BOM for subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
 msgid "No Stock Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
 msgid "Includes variant and substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
 #: templates/js/translated/part.js:690
 msgid "Includes variant stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
 msgid "Includes substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -8131,262 +8127,270 @@ msgstr ""
 msgid "Location not specified"
 msgstr "Posizione non specificata"
 
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
 msgid "No active build outputs found"
 msgstr ""
 
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
 msgid "Allocated Stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
 msgid "No tracked BOM items for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
 msgid "Completed Tests"
 msgstr ""
 
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
 msgid "No required tests for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
 msgid "Edit stock allocation"
 msgstr "Modifica allocazione magazzino"
 
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
 msgid "Delete stock allocation"
 msgstr "Elimina posizione giacenza"
 
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
 msgid "Edit Allocation"
 msgstr "Modifica Posizione"
 
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
 msgid "Remove Allocation"
 msgstr "Rimuovi Posizione"
 
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
 msgid "Substitute parts available"
 msgstr ""
 
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
 msgid "Quantity Per"
 msgstr ""
 
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
 msgid "Insufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
 msgid "Sufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
 msgid "Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
 msgid "Build stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
 msgid "Order stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
 msgid "Allocate stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr "Seleziona Articoli"
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
 msgid "You must select at least one part to allocate"
 msgstr ""
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
 msgid "Specify stock allocation quantity"
 msgstr "Specificare il quantitativo assegnato allo stock"
 
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
 msgid "All Parts Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
 msgid "All selected parts have been fully allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
 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:2117
+#: templates/js/translated/build.js:2100
 msgid "Allocate Stock Items to Build Order"
 msgstr ""
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
 msgid "No matching stock locations"
 msgstr "Nessuna posizione di magazzino corrispondente"
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
 msgid "No matching stock items"
 msgstr ""
 
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
 msgid "Automatic Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
 msgstr ""
 
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
 msgid "If a location is specifed, stock will only be allocated from that location"
 msgstr ""
 
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
 msgstr ""
 
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
 msgstr ""
 
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
 msgid "Allocate Stock Items"
 msgstr ""
 
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
 msgid "Select"
 msgstr ""
 
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
 msgid "Build order is overdue"
 msgstr ""
 
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
 msgid "Progress"
 msgstr ""
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
 msgid "No information"
 msgstr ""
 
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
 msgid "No parts allocated for"
 msgstr ""
 
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
 msgid "Add Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
 msgid "Edit Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr "Aggiungi fornitore"
 
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
 msgid "Add Supplier Part"
 msgstr "Aggiungi fornitore articolo"
 
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
 msgid "Edit Supplier Part"
 msgstr "Modifica fornitore articolo"
 
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
+msgstr "Tutte gli articoli del fornitore selezionati saranno eliminati"
+
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:342
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
 msgid "Parts Supplied"
 msgstr "Fornitori articoli"
 
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr "Elimina Parametri"
+
+#: templates/js/translated/company.js:595
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
 #: templates/js/translated/part.js:650
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
 #: templates/js/translated/part.js:654
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
 msgid "Edit parameter"
 msgstr "Modifica parametro"
 
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
 msgid "Delete parameter"
 msgstr "Elimina il parametro"
 
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
 msgid "Edit Parameter"
 msgstr "Modifica parametro"
 
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
 msgid "Delete Parameter"
 msgstr "Elimina Parametri"
 
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
 msgid "No supplier parts found"
 msgstr "Nessun fornitore trovato"
 
@@ -8424,61 +8428,61 @@ msgstr "Cancella tutti i filtri"
 msgid "Create filter"
 msgstr "Crea filtro"
 
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
 msgid "Action Prohibited"
 msgstr "Azione Vietata"
 
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
 msgid "Create operation not allowed"
 msgstr "Crea operazione non consentita"
 
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
 msgid "Update operation not allowed"
 msgstr "Operazione di aggiornamento non consentita"
 
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
 msgid "Delete operation not allowed"
 msgstr "Operazione di eliminazione non consentita"
 
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
 msgid "View operation not allowed"
 msgstr "Mostra operazione non consentita"
 
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
 msgid "Keep this form open"
 msgstr ""
 
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
 msgid "Enter a valid number"
 msgstr "Inserisci un numero valido"
 
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
 #: templates/modals.html:43
 msgid "Form errors exist"
 msgstr ""
 
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
 msgid "No results found"
 msgstr "Nessun risultato trovato"
 
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
 msgid "Searching"
 msgstr "Ricerca"
 
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
 msgid "Clear input"
 msgstr "Cancella input"
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "File Column"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "Field Name"
 msgstr ""
 
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
 msgid "Select Columns"
 msgstr ""
 
@@ -8552,62 +8556,62 @@ msgstr "elemento stock creato"
 msgid "Select Label Template"
 msgstr "Seleziona Modello Etichetta"
 
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
 msgid "Cancel"
 msgstr "Annulla"
 
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
 #: templates/modals.html:28 templates/modals.html:51
 msgid "Submit"
 msgstr "Invia"
 
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
 msgid "Form Title"
 msgstr "Titolo modulo"
 
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
 msgid "Waiting for server..."
 msgstr "In attesa del server..."
 
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
 msgid "Show Error Information"
 msgstr "Informazioni sull'errore"
 
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
 msgid "Accept"
 msgstr "Accetta"
 
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
 msgid "Loading Data"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Invalid response from server"
 msgstr "Risposta dal server non valida"
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Form data missing from server response"
 msgstr ""
 
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
 msgid "Error posting form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "JSON response missing form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
 msgid "Error 400: Bad Request"
 msgstr ""
 
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
 msgid "Server returned error code 400"
 msgstr ""
 
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
 msgid "Error requesting form data"
 msgstr ""
 
@@ -8665,377 +8669,381 @@ msgstr ""
 msgid "Notifications will load here"
 msgstr ""
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
 msgstr ""
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
 msgstr ""
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr ""
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr ""
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr ""
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr ""
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr ""
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr "Aggiungi cliente"
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr ""
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr ""
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr ""
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr ""
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr ""
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr ""
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr "Quantità da ricevere"
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
 msgid "Stock Status"
 msgstr "Stato giacenza"
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr "Codice ordine"
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr "Ordinato"
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr ""
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
 msgid "Order is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
 msgid "Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
 msgid "Duplicate Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
 msgid "Edit Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
 msgid "Delete Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1856
 msgid "No line items found"
 msgstr ""
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
 msgid "Total"
 msgstr "Totale"
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr "Prezzo Unitario"
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
 msgid "Total Price"
 msgstr "Prezzo Totale"
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
 msgid "Duplicate line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
 msgid "Edit line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
 msgid "Delete line item"
 msgstr ""
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
 msgid "Duplicate line"
 msgstr ""
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
 msgid "Edit line"
 msgstr ""
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
 msgid "Delete line"
 msgstr ""
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
 msgid "Duplicate Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
 msgid "Edit Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
 msgid "Delete Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2279
 msgid "No matching line"
 msgstr ""
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2392
 msgid "No sales orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2462
 msgid "Invalid Customer"
 msgstr "Cliente non valido"
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2549
 msgid "Edit shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2552
 msgid "Complete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2557
 msgid "Delete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2577
 msgid "Edit Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2594
 msgid "Delete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2628
 msgid "No matching shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2638
 msgid "Shipment Reference"
 msgstr ""
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2662
 msgid "Not shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2668
 msgid "Tracking"
 msgstr ""
 
-#: templates/js/translated/order.js:2603
+#: templates/js/translated/order.js:2672
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:2841
 msgid "Add Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2892
 msgid "Confirm stock allocation"
 msgstr "Conferma l'assegnazione della giacenza"
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2893
 msgid "Allocate Stock Items to Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:3101
 msgid "No sales order allocations found"
 msgstr "Nessun ordine di vendita trovato"
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:3182
 msgid "Edit Stock Allocation"
 msgstr "Modifica posizione giacenza"
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:3199
 msgid "Confirm Delete Operation"
 msgstr "Conferma Operazione Eliminazione"
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:3200
 msgid "Delete Stock Allocation"
 msgstr "Elimina posizione giacenza"
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
 msgid "Shipped to customer"
 msgstr "Spedito al cliente"
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
 msgid "Stock location not specified"
 msgstr "Nessun posizione specificata"
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3623
 msgid "Allocate serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3629
 msgid "Purchase stock"
 msgstr "Prezzo d'acquisto"
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
 msgid "Calculate price"
 msgstr "Calcola il prezzo"
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3648
 msgid "Cannot be deleted as items have been shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3651
 msgid "Cannot be deleted as items have been allocated"
 msgstr ""
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3733
 msgid "Allocate Serial Numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3842
 msgid "Update Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3856
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:4092
 msgid "No matching lines"
 msgstr ""
 
@@ -9217,7 +9225,7 @@ msgid "No category"
 msgstr "Nessuna categoria"
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2238
 msgid "Display as list"
 msgstr "Visualizza come elenco"
 
@@ -9225,7 +9233,7 @@ msgstr "Visualizza come elenco"
 msgid "Display as grid"
 msgstr "Visualizza come griglia"
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
 msgid "Display as tree"
 msgstr "Visualizza come struttura ad albero"
 
@@ -9233,7 +9241,7 @@ msgstr "Visualizza come struttura ad albero"
 msgid "Subscribed category"
 msgstr "Categoria sottoscritta"
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
 msgid "Path"
 msgstr "Percorso"
 
@@ -9241,12 +9249,12 @@ msgstr "Percorso"
 msgid "No test templates matching query"
 msgstr "Nessun modello di test corrispondente"
 
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
 msgid "Edit test result"
 msgstr "Modificare il risultato del test"
 
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
 msgid "Delete test result"
 msgstr "Cancellare il risultato del test"
 
@@ -9367,11 +9375,11 @@ msgstr ""
 msgid "Sales Order(s) must be selected before printing report"
 msgstr ""
 
-#: templates/js/translated/search.js:307
+#: templates/js/translated/search.js:352
 msgid "Minimize results"
 msgstr ""
 
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:355
 msgid "Remove results"
 msgstr ""
 
@@ -9531,204 +9539,204 @@ msgstr "Devi selezionare almeno un articolo disponibile"
 msgid "Confirm stock adjustment"
 msgstr ""
 
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
 msgid "PASS"
 msgstr ""
 
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
 msgid "FAIL"
 msgstr ""
 
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
 msgid "NO RESULT"
 msgstr "NESSUN RISULTATO"
 
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
 msgid "Pass test"
 msgstr ""
 
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
 msgid "Add test result"
 msgstr "Aggiungi risultato test"
 
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
 msgid "No test results found"
 msgstr "Nessun risultato di prova trovato"
 
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
 msgid "Test Date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
 msgid "Edit Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
 msgid "Delete Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
 msgid "In production"
 msgstr "In produzione"
 
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
 msgid "Installed in Stock Item"
 msgstr "Installato nell'elemento stock"
 
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
 msgid "Assigned to Sales Order"
 msgstr "Assegnato all'ordine di vendita"
 
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
 msgid "No stock location set"
 msgstr "Nessuna giacenza impostata"
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1712
 msgid "Stock item is in production"
 msgstr "L'articolo di magazzino è in produzione"
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1717
 msgid "Stock item assigned to sales order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1720
 msgid "Stock item assigned to customer"
 msgstr "Articolo stock assegnato al cliente"
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr "L'articolo stock è scaduto"
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr "Articolo in giacenza prossimo alla scadenza"
-
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
 msgid "Serialized stock item has been allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
 msgid "Stock item has been fully allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
 msgid "Stock item has been partially allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1730
 msgid "Stock item has been installed in another item"
 msgstr "L'elemento stock è stato installato in un altro articolo"
 
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1734
+msgid "Stock item has expired"
+msgstr "L'articolo stock è scaduto"
+
+#: templates/js/translated/stock.js:1736
+msgid "Stock item will expire soon"
+msgstr "Articolo in giacenza prossimo alla scadenza"
+
+#: templates/js/translated/stock.js:1743
 msgid "Stock item has been rejected"
 msgstr "L'articolo stock è stato rifiutato"
 
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1745
 msgid "Stock item is lost"
 msgstr ""
 
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1747
 msgid "Stock item is destroyed"
 msgstr ""
 
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1751
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr "Esaurito"
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1802
 msgid "Stocktake"
 msgstr "Inventario"
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1884
 msgid "Supplier part not specified"
 msgstr ""
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1922
 msgid "No stock items matching query"
 msgstr ""
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2095
 msgid "Set Stock Status"
 msgstr ""
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2109
 msgid "Select Status Code"
 msgstr ""
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2110
 msgid "Status code must be selected"
 msgstr ""
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2365
 msgid "Details"
 msgstr ""
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2381
 msgid "Part information unavailable"
 msgstr ""
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2403
 msgid "Location no longer exists"
 msgstr "La posizione non esiste più"
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2422
 msgid "Purchase order no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
 msgid "Customer no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2459
 msgid "Stock item no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2482
 msgid "Added"
 msgstr "Aggiunto"
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2490
 msgid "Removed"
 msgstr "Rimosso"
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2566
 msgid "No installed items"
 msgstr ""
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
 msgid "Uninstall Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2666
 msgid "Select stock item to uninstall"
 msgstr ""
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2687
 msgid "Install another stock item into this item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2688
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr ""
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2690
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2691
 msgid "The Stock Item is currently available in stock"
 msgstr ""
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2692
 msgid "The Stock Item is not already installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2693
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr ""
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2706
 msgid "Select part to install"
 msgstr ""
 
@@ -9960,69 +9968,81 @@ msgstr ""
 msgid "Purchasable"
 msgstr "Acquistabile"
 
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr "Visualizzazione calendario"
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr "Visualizzazione elenco"
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
 msgid "Export Table Data"
 msgstr ""
 
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
 msgid "Select File Format"
 msgstr ""
 
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
 msgid "Loading data"
 msgstr "Caricamento dati"
 
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
 msgid "rows per page"
 msgstr "righe per pagina"
 
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
 msgid "Showing all rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "Showing"
 msgstr "Visualizzo"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "to"
 msgstr "a"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "of"
 msgstr "di"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "rows"
 msgstr "righe"
 
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
 #: templates/search.html:8 templates/search_form.html:6
 #: templates/search_form.html:7
 msgid "Search"
 msgstr "Cerca"
 
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
 msgid "No matching results"
 msgstr "Nessun risultato corrispondente"
 
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
 msgid "Hide/Show pagination"
 msgstr "Mostra/nascondi la paginazione"
 
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
 msgid "Refresh"
 msgstr "Aggiorna"
 
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
 msgid "Toggle"
 msgstr "Attiva/disattiva"
 
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
 msgid "Columns"
 msgstr "Colonne"
 
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
 msgid "All"
 msgstr "Tutti"
 
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index f4a28d3d60..2aafd2a969 100644
--- a/InvenTree/locale/ja/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ja/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
-"PO-Revision-Date: 2022-05-24 01:42\n"
+"POT-Creation-Date: 2022-05-28 23:41+0000\n"
+"PO-Revision-Date: 2022-05-29 01:47\n"
 "Last-Translator: \n"
 "Language-Team: Japanese\n"
 "Language: ja_JP\n"
@@ -21,7 +21,7 @@ msgstr ""
 msgid "API endpoint not found"
 msgstr "APIエンドポイントが見つかりません"
 
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
 msgid "Error details can be found in the admin panel"
 msgstr ""
 
@@ -30,7 +30,7 @@ msgid "Enter date"
 msgstr "日付を入力する"
 
 #: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
 msgid "Confirm"
 msgstr "確認"
 
@@ -79,7 +79,7 @@ msgstr "毎回同じメールアドレスを入力する必要があります。
 msgid "Duplicate serial: {sn}"
 msgstr "重複したシリアル番号: {sn}"
 
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
 msgid "Invalid quantity provided"
 msgstr "数量コードが無効です"
 
@@ -134,10 +134,12 @@ msgid "Select file to attach"
 msgstr "添付ファイルを選択"
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:139 order/models.py:1273
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr "リンク"
 
@@ -159,7 +161,7 @@ msgstr "ファイルコメント"
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2513
 msgid "User"
 msgstr "ユーザー"
 
@@ -205,9 +207,10 @@ msgstr "無効な選択です"
 #: templates/InvenTree/settings/plugin.html:132
 #: templates/InvenTree/settings/plugin_settings.html:23
 #: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2283
 msgid "Name"
 msgstr "お名前"
 
@@ -216,22 +219,22 @@ msgstr "お名前"
 #: company/models.py:575 company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
 #: part/templates/part/part_base.html:167
 #: part/templates/part/set_category.html:14 report/models.py:182
 #: report/models.py:547 report/models.py:586
 #: report/templates/report/inventree_build_order_base.html:118
 #: stock/templates/stock/location.html:103
 #: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
 msgid "Description"
 msgstr "説明"
 
@@ -406,7 +409,7 @@ msgid "InvenTree system health checks failed"
 msgstr "InvenTree システムのヘルスチェックに失敗しました"
 
 #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
 msgid "Pending"
 msgstr "処理待ち"
 
@@ -414,141 +417,145 @@ msgstr "処理待ち"
 msgid "Placed"
 msgstr "設置済"
 
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
 #: order/templates/order/order_base.html:134
 #: order/templates/order/sales_order_base.html:133
 msgid "Complete"
 msgstr "完了"
 
 #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
 msgid "Cancelled"
 msgstr "キャンセル済"
 
 #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
 msgid "Lost"
 msgstr "紛失"
 
 #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
 msgid "Returned"
 msgstr "返品済"
 
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
 msgid "Shipped"
 msgstr "発送済み"
 
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
 msgid "OK"
 msgstr ""
 
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
 msgid "Attention needed"
 msgstr "注意が必要です"
 
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
 msgid "Damaged"
 msgstr "破損"
 
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
 msgid "Destroyed"
 msgstr "破壊されました"
 
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
 msgid "Rejected"
 msgstr "却下済み"
 
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
 msgid "Legacy stock tracking entry"
 msgstr ""
 
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
 msgid "Stock item created"
 msgstr "在庫商品を作成しました"
 
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
 msgid "Edited stock item"
 msgstr "在庫商品編集済み"
 
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
 msgid "Assigned serial number"
 msgstr "割り当てられたシリアル番号"
 
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
 msgid "Stock counted"
 msgstr "在庫数"
 
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
 msgid "Stock manually added"
 msgstr "手動在庫追加が完了しました"
 
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
 msgid "Stock manually removed"
 msgstr "手動在庫削除が完了しました"
 
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
 msgid "Location changed"
 msgstr "ロケーションが変更されました"
 
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
 msgid "Installed into assembly"
 msgstr "アセンブリへインストールしました"
 
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
 msgid "Removed from assembly"
 msgstr "アセンブリから削除しました"
 
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
 msgid "Installed component item"
 msgstr "インストール済みのコンポーネント項目"
 
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
 msgid "Removed component item"
 msgstr "コンポーネント項目を削除しました"
 
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
 msgid "Split from parent item"
 msgstr "親アイテムから分割する"
 
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
 msgid "Split child item"
 msgstr "子項目を分割"
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
 msgid "Merged stock items"
 msgstr "商品在庫をマージしました"
 
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
 msgid "Converted to variant"
 msgstr ""
 
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
 msgid "Sent to customer"
 msgstr "顧客に送信されました"
 
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
 msgid "Returned from customer"
 msgstr "顧客からの返品"
 
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
 msgid "Build order output created"
 msgstr "組立注文の出力が作成されました"
 
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
 msgid "Build order output completed"
 msgstr "組立注文の出力が完了しました"
 
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
 msgid "Consumed by build order"
 msgstr ""
 
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
 msgid "Received against purchase order"
 msgstr ""
 
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
 msgid "Production"
 msgstr "生産"
 
@@ -637,15 +644,15 @@ msgstr ""
 msgid "Build Order Reference"
 msgstr ""
 
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
 #: part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
 msgid "Reference"
 msgstr ""
 
@@ -664,7 +671,7 @@ msgstr ""
 
 #: build/models.py:225 build/templates/build/build_base.html:77
 #: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
 #: part/models.py:2303 part/models.py:2319 part/models.py:2338
 #: part/models.py:2355 part/models.py:2457 part/models.py:2579
 #: part/models.py:2669 part/models.py:2760 part/models.py:3050
@@ -679,19 +686,21 @@ msgstr ""
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
 #: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
 msgid "Part"
 msgstr "パーツ"
 
@@ -708,7 +717,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr ""
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
 msgid "Source Location"
 msgstr ""
 
@@ -749,7 +758,7 @@ msgid "Build status code"
 msgstr ""
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr ""
 
@@ -757,12 +766,12 @@ msgstr ""
 msgid "Batch code for this build output"
 msgstr ""
 
-#: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
 msgid "Creation Date"
 msgstr "作成日時"
 
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
 msgid "Target completion date"
 msgstr ""
 
@@ -770,8 +779,8 @@ msgstr ""
 msgid "Target date for build completion. Build will be overdue after this date."
 msgstr ""
 
-#: build/models.py:300 order/models.py:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
 msgid "Completion Date"
 msgstr ""
 
@@ -779,7 +788,7 @@ msgstr ""
 msgid "completed by"
 msgstr ""
 
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
 msgid "Issued by"
 msgstr ""
 
@@ -788,11 +797,11 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
 msgid "Responsible"
 msgstr ""
 
@@ -804,14 +813,14 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr ""
 
 #: build/models.py:334 build/serializers.py:390
 #: build/templates/build/sidebar.html:21 company/models.py:134
 #: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
 #: order/templates/order/po_sidebar.html:11
 #: order/templates/order/so_sidebar.html:17 part/models.py:983
 #: part/templates/part/part_sidebar.html:59
@@ -820,11 +829,11 @@ msgstr ""
 #: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
 msgid "Notes"
 msgstr "メモ"
 
@@ -857,7 +866,7 @@ msgstr ""
 msgid "Stock item is over-allocated"
 msgstr ""
 
-#: build/models.py:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1413
 msgid "Allocation quantity must be greater than zero"
 msgstr ""
 
@@ -869,8 +878,8 @@ msgstr ""
 msgid "Selected stock item not found in BOM"
 msgstr ""
 
-#: build/models.py:1375 stock/templates/stock/item_base.html:335
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
 #: templates/navbar.html:38
 msgid "Build"
 msgstr ""
@@ -879,18 +888,18 @@ msgstr ""
 msgid "Build to allocate parts"
 msgstr "パーツを割り当てるためにビルドする"
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2449
 msgid "Stock Item"
 msgstr ""
 
@@ -902,10 +911,10 @@ msgstr ""
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_build_order_base.html:114
@@ -913,25 +922,24 @@ 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
 msgid "Quantity"
 msgstr "数量"
 
@@ -948,7 +956,7 @@ msgid "Destination stock item"
 msgstr ""
 
 #: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
 msgid "Build Output"
 msgstr ""
 
@@ -972,7 +980,7 @@ msgstr ""
 msgid "Enter quantity for build output"
 msgstr ""
 
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
 #: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
 #: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
 #: stock/serializers.py:294
@@ -987,8 +995,8 @@ msgstr ""
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr ""
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr ""
@@ -1015,15 +1023,15 @@ msgstr ""
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
 msgid "Location"
 msgstr ""
 
@@ -1032,12 +1040,12 @@ msgid "Location for completed build outputs"
 msgstr ""
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: build/templates/build/detail.html:62 order/models.py:663
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
 msgid "Status"
 msgstr "ステータス"
 
@@ -1118,7 +1126,7 @@ msgstr ""
 msgid "Item must be in stock"
 msgstr ""
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr ""
@@ -1135,7 +1143,7 @@ msgstr ""
 msgid "This stock item has already been allocated to this build output"
 msgstr ""
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr ""
 
@@ -1233,13 +1241,13 @@ msgid "Stock has not been fully allocated to this Build Order"
 msgstr ""
 
 #: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr ""
 
@@ -1266,14 +1274,14 @@ msgid "Completed"
 msgstr ""
 
 #: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2436
 msgid "Sales Order"
 msgstr ""
 
@@ -1308,8 +1316,8 @@ msgstr ""
 msgid "Stock can be taken from any available location."
 msgstr ""
 
-#: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
 msgid "Destination"
 msgstr ""
 
@@ -1322,11 +1330,11 @@ msgid "Allocated Parts"
 msgstr ""
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
-#: templates/js/translated/build.js:1184
+#: stock/templates/stock/item_base.html:170
+#: templates/js/translated/build.js:1179
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1335,7 +1343,7 @@ msgstr ""
 #: build/templates/build/detail.html:126
 #: order/templates/order/order_base.html:149
 #: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
 msgid "Created"
 msgstr ""
 
@@ -1355,7 +1363,7 @@ msgstr ""
 msgid "Allocate Stock to Build"
 msgstr ""
 
-#: build/templates/build/detail.html:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
 msgid "Unallocate stock"
 msgstr ""
 
@@ -1385,8 +1393,8 @@ msgstr "注文必須パーツ"
 
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: company/templates/company/detail.html:85
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr "パーツの注文"
 
@@ -1461,8 +1469,8 @@ msgid "Completed Build Outputs"
 msgstr ""
 
 #: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
 #: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:82
 #: order/templates/order/sales_order_detail.html:129
@@ -1476,11 +1484,11 @@ msgstr ""
 msgid "Build Notes"
 msgstr ""
 
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
 msgid "Allocation Complete"
 msgstr ""
 
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
@@ -1492,18 +1500,6 @@ msgstr ""
 msgid "Print Build Orders"
 msgstr ""
 
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr ""
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr ""
-
 #: build/templates/build/sidebar.html:5
 msgid "Build Order Details"
 msgstr ""
@@ -1727,7 +1723,7 @@ msgstr "テンプレート"
 msgid "Parts are templates by default"
 msgstr "パーツはデフォルトのテンプレートです"
 
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
 #: templates/js/translated/table_filters.js:168
 #: templates/js/translated/table_filters.js:460
 msgid "Assembly"
@@ -2413,7 +2409,7 @@ msgid "Price break quantity"
 msgstr ""
 
 #: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: company/templates/company/supplier_part.html:263 order/models.py:975
 #: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
 msgid "Price"
 msgstr ""
@@ -2556,7 +2552,7 @@ msgstr ""
 
 #: company/models.py:104 company/templates/company/company_base.html:100
 #: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
 msgid "Website"
 msgstr ""
 
@@ -2651,10 +2647,11 @@ msgstr ""
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: stock/templates/stock/item_base.html:212
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
 #: templates/js/translated/table_filters.js:411
 msgid "Manufacturer"
 msgstr ""
@@ -2665,8 +2662,10 @@ msgstr ""
 
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr ""
@@ -2686,7 +2685,7 @@ msgstr ""
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr "メーカー・パーツ"
 
@@ -2696,8 +2695,9 @@ msgstr ""
 
 #: company/models.py:427
 #: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
 msgid "Value"
 msgstr ""
 
@@ -2708,7 +2708,7 @@ msgstr ""
 #: company/models.py:434 part/models.py:940 part/models.py:2549
 #: part/templates/part/part_base.html:280
 #: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
 msgid "Units"
 msgstr ""
 
@@ -2721,11 +2721,12 @@ msgid "Linked manufacturer part must reference the same base part"
 msgstr ""
 
 #: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: stock/templates/stock/item_base.html:229
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2736,8 +2737,9 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
 msgid "SKU"
 msgstr ""
 
@@ -2773,8 +2775,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr ""
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
 msgid "Packaging"
 msgstr ""
 
@@ -2804,12 +2806,12 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
 msgid "Company"
 msgstr ""
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr ""
 
@@ -2822,7 +2824,7 @@ msgid "Edit company information"
 msgstr ""
 
 #: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
 msgid "Edit Company"
 msgstr ""
 
@@ -2845,12 +2847,12 @@ msgstr ""
 msgid "Download image from URL"
 msgstr ""
 
-#: company/templates/company/company_base.html:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr ""
@@ -2869,7 +2871,7 @@ msgid "Upload Image"
 msgstr ""
 
 #: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
+#: company/templates/company/manufacturer_part_sidebar.html:7
 #: templates/InvenTree/search.html:118
 msgid "Supplier Parts"
 msgstr "サプライヤー・パーツ"
@@ -2884,28 +2886,19 @@ msgstr "新しいサプライヤー・パーツを作成"
 msgid "New Supplier Part"
 msgstr "新しいサプライヤー・パーツ"
 
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr ""
-
 #: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
 #: part/templates/part/category.html:176
 msgid "Order parts"
 msgstr "パーツの注文"
 
 #: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
 msgid "Delete parts"
 msgstr "パーツを削除"
 
 #: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
 msgid "Delete Parts"
 msgstr "パーツを削除"
 
@@ -2917,88 +2910,76 @@ msgstr "メーカー・パーツ"
 msgid "Create new manufacturer part"
 msgstr "新しいメーカー・パーツを作成"
 
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
 msgid "New Manufacturer Part"
 msgstr "新しいメーカ―・パーツ"
 
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
 msgid "Supplier Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
 #: company/templates/company/sidebar.html:12
 #: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
 #: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:235 templates/navbar.html:50
 #: users/models.py:43
 msgid "Purchase Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
 #: order/templates/order/purchase_orders.html:17
 msgid "Create new purchase order"
 msgstr ""
 
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr ""
 
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
 #: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
 #: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
 #: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:259 templates/navbar.html:61
 #: users/models.py:44
 msgid "Sales Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
 #: order/templates/order/sales_orders.html:20
 msgid "Create new sales order"
 msgstr ""
 
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
 #: order/templates/order/sales_orders.html:21
 msgid "New Sales Order"
 msgstr ""
 
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
 msgid "Assigned Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
 msgid "Company Notes"
 msgstr ""
 
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr ""
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr ""
-
 #: company/templates/company/index.html:8
 msgid "Supplier List"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
 #: templates/navbar.html:49
 msgid "Manufacturers"
 msgstr ""
@@ -3011,12 +2992,12 @@ msgid "Order part"
 msgstr "パーツの注文"
 
 #: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
 msgid "Edit manufacturer part"
 msgstr "メーカー・パーツの編集"
 
 #: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
 msgid "Delete manufacturer part"
 msgstr "メーカー・パーツを削除"
 
@@ -3032,55 +3013,46 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:119
 #: company/templates/company/supplier_part.html:15 company/views.py:41
 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
 msgid "Suppliers"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
 #: part/templates/part/detail.html:363
 msgid "Delete supplier parts"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
 msgid "Delete"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:164
+#: company/templates/company/manufacturer_part.html:166
 #: company/templates/company/manufacturer_part_sidebar.html:5
 #: part/templates/part/category_sidebar.html:19
 #: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8
 msgid "Parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
 #: part/templates/part/detail.html:184
 #: templates/InvenTree/settings/category.html:12
 #: templates/InvenTree/settings/part.html:66
 msgid "New Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
 msgid "Delete parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
 msgid "Add Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr ""
-
 #: company/templates/company/sidebar.html:6
 msgid "Manufactured Parts"
 msgstr ""
@@ -3099,19 +3071,19 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
 msgid "Delete supplier part"
 msgstr ""
 
@@ -3186,11 +3158,11 @@ msgstr ""
 #: part/templates/part/part_sidebar.html:14
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
 #: templates/InvenTree/settings/sidebar.html:43
 #: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
 #: templates/navbar.html:31
 msgid "Stock"
 msgstr ""
@@ -3216,8 +3188,8 @@ msgstr ""
 #: stock/templates/stock/location.html:161
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
+#: templates/js/translated/stock.js:2307 users/models.py:41
 msgid "Stock Items"
 msgstr ""
 
@@ -3229,7 +3201,7 @@ msgstr ""
 msgid "New Manufacturer"
 msgstr ""
 
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
 #: templates/navbar.html:60
 msgid "Customers"
 msgstr ""
@@ -3238,7 +3210,7 @@ msgstr ""
 msgid "New Customer"
 msgstr ""
 
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:212
 msgid "Companies"
 msgstr ""
 
@@ -3328,305 +3300,313 @@ msgstr ""
 msgid "Part query filters (comma-separated value of key=value pairs)"
 msgstr ""
 
-#: order/models.py:130
+#: order/models.py:137
 msgid "Order description"
 msgstr ""
 
-#: order/models.py:132
+#: order/models.py:139 order/models.py:1274
 msgid "Link to external page"
 msgstr ""
 
-#: order/models.py:140
+#: order/models.py:147
 msgid "Created By"
 msgstr ""
 
-#: order/models.py:147
+#: order/models.py:154
 msgid "User or group responsible for this order"
 msgstr ""
 
-#: order/models.py:152
+#: order/models.py:159
 msgid "Order notes"
 msgstr ""
 
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
 msgid "Order reference"
 msgstr ""
 
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
 msgid "Purchase order status"
 msgstr ""
 
-#: order/models.py:253
+#: order/models.py:311
 msgid "Company from which the items are being ordered"
 msgstr ""
 
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
 msgid "Supplier Reference"
 msgstr ""
 
-#: order/models.py:256
+#: order/models.py:314
 msgid "Supplier order reference code"
 msgstr ""
 
-#: order/models.py:263
+#: order/models.py:321
 msgid "received by"
 msgstr ""
 
-#: order/models.py:268
+#: order/models.py:326
 msgid "Issue Date"
 msgstr ""
 
-#: order/models.py:269
+#: order/models.py:327
 msgid "Date order was issued"
 msgstr ""
 
-#: order/models.py:274
+#: order/models.py:332
 msgid "Target Delivery Date"
 msgstr ""
 
-#: order/models.py:275
+#: order/models.py:333
 msgid "Expected date for order delivery. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:281
+#: order/models.py:339
 msgid "Date order was completed"
 msgstr ""
 
-#: order/models.py:310
+#: order/models.py:368
 msgid "Part supplier must match PO supplier"
 msgstr ""
 
-#: order/models.py:456
+#: order/models.py:514
 msgid "Quantity must be a positive number"
 msgstr ""
 
-#: order/models.py:601
+#: order/models.py:659
 msgid "Company to which the items are being sold"
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer Reference "
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer order reference code"
 msgstr ""
 
-#: order/models.py:612
+#: order/models.py:670
 msgid "Target date for order completion. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
 msgid "Shipment Date"
 msgstr ""
 
-#: order/models.py:622
+#: order/models.py:680
 msgid "shipped by"
 msgstr ""
 
-#: order/models.py:688
+#: order/models.py:746
 msgid "Order cannot be completed as no parts have been assigned"
 msgstr ""
 
-#: order/models.py:692
+#: order/models.py:750
 msgid "Only a pending order can be marked as complete"
 msgstr ""
 
-#: order/models.py:695
+#: order/models.py:753
 msgid "Order cannot be completed as there are incomplete shipments"
 msgstr ""
 
-#: order/models.py:698
+#: order/models.py:756
 msgid "Order cannot be completed as there are incomplete line items"
 msgstr ""
 
-#: order/models.py:878
+#: order/models.py:936
 msgid "Item quantity"
 msgstr ""
 
-#: order/models.py:884
+#: order/models.py:942
 msgid "Line item reference"
 msgstr ""
 
-#: order/models.py:886
+#: order/models.py:944
 msgid "Line item notes"
 msgstr ""
 
-#: order/models.py:891
+#: order/models.py:949
 msgid "Target shipping date for this line item"
 msgstr ""
 
-#: order/models.py:909
+#: order/models.py:967
 msgid "Context"
 msgstr ""
 
-#: order/models.py:910
+#: order/models.py:968
 msgid "Additional context for this line"
 msgstr ""
 
-#: order/models.py:918
+#: order/models.py:976
 msgid "Unit price"
 msgstr ""
 
-#: order/models.py:951
+#: order/models.py:1009
 msgid "Supplier part must match supplier"
 msgstr ""
 
-#: order/models.py:958
+#: order/models.py:1016
 msgid "deleted"
 msgstr ""
 
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
 msgid "Order"
 msgstr ""
 
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
 msgid "Purchase Order"
 msgstr ""
 
-#: order/models.py:984
+#: order/models.py:1042
 msgid "Supplier part"
 msgstr ""
 
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
 msgstr ""
 
-#: order/models.py:992
+#: order/models.py:1050
 msgid "Number of items received"
 msgstr ""
 
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1900
 msgid "Purchase Price"
 msgstr ""
 
-#: order/models.py:1000
+#: order/models.py:1058
 msgid "Unit purchase price"
 msgstr ""
 
-#: order/models.py:1008
+#: order/models.py:1066
 msgid "Where does the Purchaser want this item to be stored?"
 msgstr ""
 
-#: order/models.py:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
 #: part/templates/part/prices.html:119 part/templates/part/prices.html:288
 msgid "Sale Price"
 msgstr ""
 
-#: order/models.py:1079
+#: order/models.py:1137
 msgid "Unit sale price"
 msgstr ""
 
-#: order/models.py:1084
+#: order/models.py:1142
 msgid "Shipped quantity"
 msgstr ""
 
-#: order/models.py:1171
+#: order/models.py:1229
 msgid "Date of shipment"
 msgstr ""
 
-#: order/models.py:1178
+#: order/models.py:1236
 msgid "Checked By"
 msgstr ""
 
-#: order/models.py:1179
+#: order/models.py:1237
 msgid "User who checked this shipment"
 msgstr ""
 
-#: order/models.py:1187
+#: order/models.py:1245
 msgid "Shipment number"
 msgstr ""
 
-#: order/models.py:1194
+#: order/models.py:1252
 msgid "Shipment notes"
 msgstr ""
 
-#: order/models.py:1201
+#: order/models.py:1259
 msgid "Tracking Number"
 msgstr ""
 
-#: order/models.py:1202
+#: order/models.py:1260
 msgid "Shipment tracking information"
 msgstr ""
 
-#: order/models.py:1213
+#: order/models.py:1267
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1268
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1285
 msgid "Shipment has already been sent"
 msgstr ""
 
-#: order/models.py:1216
+#: order/models.py:1288
 msgid "Shipment has no allocated stock items"
 msgstr ""
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1395 order/models.py:1397
 msgid "Stock item has not been assigned"
 msgstr ""
 
-#: order/models.py:1317
+#: order/models.py:1401
 msgid "Cannot allocate stock item to a line with a different part"
 msgstr ""
 
-#: order/models.py:1319
+#: order/models.py:1403
 msgid "Cannot allocate stock to a line without a part"
 msgstr ""
 
-#: order/models.py:1322
+#: order/models.py:1406
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr ""
 
-#: order/models.py:1326
+#: order/models.py:1410
 msgid "StockItem is over-allocated"
 msgstr ""
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1416 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr ""
 
-#: order/models.py:1335
+#: order/models.py:1419
 msgid "Sales order does not match shipment"
 msgstr ""
 
-#: order/models.py:1336
+#: order/models.py:1420
 msgid "Shipment does not match sales order"
 msgstr ""
 
-#: order/models.py:1344
+#: order/models.py:1428
 msgid "Line"
 msgstr ""
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr ""
 
-#: order/models.py:1353
+#: order/models.py:1437
 msgid "Sales order shipment reference"
 msgstr ""
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr ""
 
-#: order/models.py:1366
+#: order/models.py:1450
 msgid "Select stock item to allocate"
 msgstr ""
 
-#: order/models.py:1369
+#: order/models.py:1453
 msgid "Enter stock allocation quantity"
 msgstr ""
 
@@ -3662,7 +3642,7 @@ msgstr ""
 msgid "Purchase order must match supplier"
 msgstr ""
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr ""
 
@@ -3674,11 +3654,11 @@ msgstr ""
 msgid "Select destination location for received items"
 msgstr ""
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr ""
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr ""
 
@@ -3714,35 +3694,35 @@ msgstr ""
 msgid "Sale price currency"
 msgstr ""
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr ""
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr ""
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr ""
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr ""
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr ""
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr ""
 
@@ -3832,7 +3812,12 @@ msgstr ""
 msgid "Total cost"
 msgstr ""
 
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
 msgid "Edit Purchase Order"
 msgstr ""
 
@@ -3863,9 +3848,9 @@ msgstr ""
 #: part/templates/part/import_wizard/ajax_match_references.html:42
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3929,7 +3914,7 @@ msgstr ""
 msgid "Order Notes"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
 msgid "Add Order Line"
 msgstr ""
 
@@ -3947,12 +3932,12 @@ msgid "Print packing list"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
 msgid "Complete Sales Order"
 msgstr ""
 
@@ -3961,7 +3946,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2471
 msgid "Customer Reference"
 msgstr ""
 
@@ -3971,7 +3956,7 @@ msgstr ""
 msgid "Completed Shipments"
 msgstr ""
 
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
 msgid "Edit Sales Order"
 msgstr ""
 
@@ -3985,7 +3970,7 @@ msgid "Pending Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
 msgid "Actions"
 msgstr ""
 
@@ -4113,7 +4098,7 @@ msgid "Part Category"
 msgstr ""
 
 #: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
 #: users/models.py:38
 msgid "Part Categories"
 msgstr ""
@@ -4124,7 +4109,7 @@ msgstr ""
 #: part/templates/part/category_sidebar.html:9
 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
 #: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
 #: templates/navbar.html:24 users/models.py:39
 msgid "Parts"
 msgstr "パーツ"
@@ -4202,7 +4187,7 @@ msgstr ""
 
 #: part/models.py:842 part/templates/part/part_base.html:266
 #: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
 msgid "IPN"
 msgstr ""
 
@@ -4316,7 +4301,7 @@ msgid "Test with this name already exists for this part"
 msgstr ""
 
 #: part/models.py:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
 msgid "Test Name"
 msgstr ""
 
@@ -4448,7 +4433,7 @@ msgid "BOM quantity for this BOM item"
 msgstr ""
 
 #: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
 #: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
@@ -4482,7 +4467,7 @@ msgid "BOM line checksum"
 msgstr ""
 
 #: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
 #: templates/js/translated/table_filters.js:68
 #: templates/js/translated/table_filters.js:88
 msgid "Inherited"
@@ -4493,7 +4478,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
 #: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
 msgid "Allow Variants"
 msgstr ""
 
@@ -4714,6 +4699,11 @@ msgstr ""
 msgid "New Part"
 msgstr "新規パーツ"
 
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr ""
+
 #: part/templates/part/category.html:172
 msgid "Set category"
 msgstr ""
@@ -4902,46 +4892,46 @@ msgstr ""
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
 msgid "Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
 msgid "Add Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
@@ -5084,8 +5074,8 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
 #: templates/js/translated/model_renderers.js:192
 #: templates/js/translated/part.js:581 templates/js/translated/part.js:658
 msgid "Inactive"
@@ -5101,20 +5091,22 @@ msgstr ""
 msgid "This part is a variant of %(link)s"
 msgstr ""
 
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr ""
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr ""
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
 msgid "Can Build"
 msgstr ""
 
@@ -5133,7 +5125,7 @@ msgid "Latest Serial Number"
 msgstr ""
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr ""
 
@@ -5172,7 +5164,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -5291,7 +5283,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
 msgid "Supplier Cost"
 msgstr ""
 
@@ -5530,7 +5522,7 @@ msgstr ""
 msgid "Barcode associated with Stock Item"
 msgstr ""
 
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
 msgid "Label printing failed"
 msgstr ""
 
@@ -5770,12 +5762,12 @@ msgid "Stock Item Test Report"
 msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr ""
 
@@ -5796,7 +5788,7 @@ msgstr ""
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
 msgid "Date"
 msgstr ""
 
@@ -5815,7 +5807,7 @@ msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2589
 msgid "Serial"
 msgstr ""
 
@@ -5832,7 +5824,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr ""
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr ""
 
@@ -5894,7 +5886,7 @@ msgstr ""
 msgid "Packaging this stock item is stored in"
 msgstr ""
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr ""
 
@@ -5934,8 +5926,8 @@ msgstr ""
 msgid "Destination Sales Order"
 msgstr ""
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1816
 msgid "Expiry Date"
 msgstr ""
 
@@ -6215,11 +6207,11 @@ msgstr ""
 msgid "Installed Stock Items"
 msgstr ""
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
 msgid "Install Stock Item"
 msgstr ""
 
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
 msgid "Add Test Result"
 msgstr ""
 
@@ -6311,110 +6303,114 @@ msgstr ""
 msgid "Delete stock item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:244
-msgid "This stock item has not passed all required tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:252
-msgid "This stock item is allocated to Sales Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr ""
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:284
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:292
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1693
+msgid "No location set"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1832
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr ""
 
@@ -6486,8 +6482,8 @@ msgstr ""
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:198 users/models.py:40
 msgid "Stock Locations"
 msgstr ""
 
@@ -6539,7 +6535,7 @@ msgstr ""
 msgid "Child Items"
 msgstr ""
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr ""
 
@@ -6564,55 +6560,55 @@ msgstr ""
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr ""
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr ""
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr ""
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr ""
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr ""
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr ""
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr ""
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr ""
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr ""
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr ""
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr ""
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr ""
 
@@ -7331,9 +7327,9 @@ msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr ""
@@ -7602,14 +7598,14 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
 #: templates/js/translated/part.js:530
 #: templates/js/translated/table_filters.js:178
 msgid "Available"
@@ -7644,67 +7640,67 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
-#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
 msgid "No Response"
 msgstr ""
 
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
 msgid "No response from the InvenTree server"
 msgstr ""
 
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
 msgid "Error 400: Bad request"
 msgstr ""
 
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
 msgid "API request returned error code 400"
 msgstr ""
 
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
 msgid "Error 401: Not Authenticated"
 msgstr ""
 
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
 msgid "Authentication credentials not supplied"
 msgstr ""
 
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
 msgid "Error 403: Permission Denied"
 msgstr ""
 
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
 msgid "You do not have the required permissions to access this function"
 msgstr ""
 
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
 msgid "Error 404: Resource Not Found"
 msgstr ""
 
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
 msgid "The requested resource could not be located on the server"
 msgstr ""
 
-#: templates/js/translated/api.js:217
+#: templates/js/translated/api.js:262
 msgid "Error 405: Method Not Allowed"
 msgstr ""
 
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
 msgid "HTTP method not allowed at URL"
 msgstr ""
 
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
 msgid "Error 408: Timeout"
 msgstr ""
 
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
 msgid "Connection timeout while requesting data from server"
 msgstr ""
 
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
 msgid "Unhandled Error Code"
 msgstr ""
 
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
 msgid "Error code"
 msgstr ""
 
@@ -7765,7 +7761,7 @@ msgid "Unknown response from server"
 msgstr ""
 
 #: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "Invalid server response"
 msgstr ""
 
@@ -7847,12 +7843,12 @@ msgid "Download BOM Template"
 msgstr ""
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
 msgid "Format"
 msgstr ""
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr ""
 
@@ -7932,84 +7928,84 @@ msgstr ""
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
 msgid "Load BOM for subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
 msgid "No Stock Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
 msgid "Includes variant and substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
 #: templates/js/translated/part.js:690
 msgid "Includes variant stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
 msgid "Includes substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -8131,262 +8127,270 @@ msgstr ""
 msgid "Location not specified"
 msgstr ""
 
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
 msgid "No active build outputs found"
 msgstr ""
 
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
 msgid "Allocated Stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
 msgid "No tracked BOM items for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
 msgid "Completed Tests"
 msgstr ""
 
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
 msgid "No required tests for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
 msgid "Edit stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
 msgid "Delete stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
 msgid "Edit Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
 msgid "Remove Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
 msgid "Substitute parts available"
 msgstr ""
 
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
 msgid "Quantity Per"
 msgstr ""
 
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
 msgid "Insufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
 msgid "Sufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
 msgid "Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
 msgid "Build stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
 msgid "Order stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
 msgid "Allocate stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr ""
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
 msgid "You must select at least one part to allocate"
 msgstr ""
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
 msgid "All Parts Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
 msgid "All selected parts have been fully allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
 msgid "Select source location (leave blank to take from all locations)"
 msgstr ""
 
-#: templates/js/translated/build.js:2117
+#: templates/js/translated/build.js:2100
 msgid "Allocate Stock Items to Build Order"
 msgstr ""
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
 msgid "No matching stock locations"
 msgstr ""
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
 msgid "No matching stock items"
 msgstr ""
 
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
 msgid "Automatic Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
 msgstr ""
 
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
 msgid "If a location is specifed, stock will only be allocated from that location"
 msgstr ""
 
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
 msgstr ""
 
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
 msgstr ""
 
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
 msgid "Allocate Stock Items"
 msgstr ""
 
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
 msgid "Select"
 msgstr ""
 
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
 msgid "Build order is overdue"
 msgstr ""
 
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
 msgid "Progress"
 msgstr ""
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
 msgid "No information"
 msgstr ""
 
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
 msgid "No parts allocated for"
 msgstr ""
 
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
 msgid "Add Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
 msgid "Edit Manufacturer Part"
 msgstr "メーカー・パーツの編集"
 
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr "メーカー・パーツを削除"
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:342
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr ""
+
+#: templates/js/translated/company.js:595
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
 #: templates/js/translated/part.js:650
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
 #: templates/js/translated/part.js:654
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
 msgid "No supplier parts found"
 msgstr ""
 
@@ -8424,61 +8428,61 @@ msgstr ""
 msgid "Create filter"
 msgstr ""
 
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
 msgid "Action Prohibited"
 msgstr ""
 
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
 msgid "Create operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
 msgid "Update operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
 msgid "Delete operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
 msgid "View operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
 msgid "Keep this form open"
 msgstr ""
 
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
 msgid "Enter a valid number"
 msgstr ""
 
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
 #: templates/modals.html:43
 msgid "Form errors exist"
 msgstr ""
 
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
 msgid "No results found"
 msgstr ""
 
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
 msgid "Searching"
 msgstr ""
 
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
 msgid "Clear input"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "File Column"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "Field Name"
 msgstr ""
 
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
 msgid "Select Columns"
 msgstr ""
 
@@ -8552,62 +8556,62 @@ msgstr ""
 msgid "Select Label Template"
 msgstr ""
 
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
 msgid "Cancel"
 msgstr ""
 
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
 #: templates/modals.html:28 templates/modals.html:51
 msgid "Submit"
 msgstr ""
 
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
 msgid "Form Title"
 msgstr ""
 
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
 msgid "Waiting for server..."
 msgstr ""
 
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
 msgid "Show Error Information"
 msgstr ""
 
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
 msgid "Accept"
 msgstr ""
 
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
 msgid "Loading Data"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Invalid response from server"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Form data missing from server response"
 msgstr ""
 
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
 msgid "Error posting form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "JSON response missing form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
 msgid "Error 400: Bad Request"
 msgstr ""
 
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
 msgid "Server returned error code 400"
 msgstr ""
 
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
 msgid "Error requesting form data"
 msgstr ""
 
@@ -8665,377 +8669,381 @@ msgstr ""
 msgid "Notifications will load here"
 msgstr ""
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
 msgstr ""
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
 msgstr ""
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr ""
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr ""
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr ""
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr ""
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr ""
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr ""
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr ""
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr ""
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr ""
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr ""
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr ""
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
 msgid "Stock Status"
 msgstr ""
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr ""
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr ""
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr ""
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
 msgid "Order is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
 msgid "Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
 msgid "Duplicate Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
 msgid "Edit Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
 msgid "Delete Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1856
 msgid "No line items found"
 msgstr ""
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
 msgid "Total"
 msgstr ""
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
 msgid "Total Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
 msgid "Duplicate line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
 msgid "Edit line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
 msgid "Delete line item"
 msgstr ""
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
 msgid "Duplicate line"
 msgstr ""
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
 msgid "Edit line"
 msgstr ""
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
 msgid "Delete line"
 msgstr ""
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
 msgid "Duplicate Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
 msgid "Edit Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
 msgid "Delete Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2279
 msgid "No matching line"
 msgstr ""
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2392
 msgid "No sales orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2462
 msgid "Invalid Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2549
 msgid "Edit shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2552
 msgid "Complete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2557
 msgid "Delete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2577
 msgid "Edit Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2594
 msgid "Delete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2628
 msgid "No matching shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2638
 msgid "Shipment Reference"
 msgstr ""
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2662
 msgid "Not shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2668
 msgid "Tracking"
 msgstr ""
 
-#: templates/js/translated/order.js:2603
+#: templates/js/translated/order.js:2672
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:2841
 msgid "Add Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2892
 msgid "Confirm stock allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2893
 msgid "Allocate Stock Items to Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:3101
 msgid "No sales order allocations found"
 msgstr ""
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:3182
 msgid "Edit Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:3199
 msgid "Confirm Delete Operation"
 msgstr ""
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:3200
 msgid "Delete Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
 msgid "Shipped to customer"
 msgstr ""
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
 msgid "Stock location not specified"
 msgstr ""
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3623
 msgid "Allocate serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3629
 msgid "Purchase stock"
 msgstr ""
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
 msgid "Calculate price"
 msgstr ""
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3648
 msgid "Cannot be deleted as items have been shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3651
 msgid "Cannot be deleted as items have been allocated"
 msgstr ""
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3733
 msgid "Allocate Serial Numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3842
 msgid "Update Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3856
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:4092
 msgid "No matching lines"
 msgstr ""
 
@@ -9217,7 +9225,7 @@ msgid "No category"
 msgstr ""
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2238
 msgid "Display as list"
 msgstr ""
 
@@ -9225,7 +9233,7 @@ msgstr ""
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
 msgid "Display as tree"
 msgstr ""
 
@@ -9233,7 +9241,7 @@ msgstr ""
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
 msgid "Path"
 msgstr ""
 
@@ -9241,12 +9249,12 @@ msgstr ""
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
 msgid "Delete test result"
 msgstr ""
 
@@ -9367,11 +9375,11 @@ msgstr ""
 msgid "Sales Order(s) must be selected before printing report"
 msgstr ""
 
-#: templates/js/translated/search.js:307
+#: templates/js/translated/search.js:352
 msgid "Minimize results"
 msgstr ""
 
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:355
 msgid "Remove results"
 msgstr ""
 
@@ -9531,204 +9539,204 @@ msgstr ""
 msgid "Confirm stock adjustment"
 msgstr ""
 
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
 msgid "PASS"
 msgstr ""
 
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
 msgid "FAIL"
 msgstr ""
 
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
 msgid "NO RESULT"
 msgstr ""
 
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
 msgid "Pass test"
 msgstr ""
 
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
 msgid "Add test result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
 msgid "No test results found"
 msgstr ""
 
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
 msgid "Test Date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
 msgid "Edit Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
 msgid "Delete Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
 msgid "In production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
 msgid "Installed in Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
 msgid "Assigned to Sales Order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
 msgid "No stock location set"
 msgstr ""
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1712
 msgid "Stock item is in production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1717
 msgid "Stock item assigned to sales order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1720
 msgid "Stock item assigned to customer"
 msgstr ""
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr ""
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr ""
-
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
 msgid "Serialized stock item has been allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
 msgid "Stock item has been fully allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
 msgid "Stock item has been partially allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1730
 msgid "Stock item has been installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1734
+msgid "Stock item has expired"
+msgstr ""
+
+#: templates/js/translated/stock.js:1736
+msgid "Stock item will expire soon"
+msgstr ""
+
+#: templates/js/translated/stock.js:1743
 msgid "Stock item has been rejected"
 msgstr ""
 
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1745
 msgid "Stock item is lost"
 msgstr ""
 
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1747
 msgid "Stock item is destroyed"
 msgstr ""
 
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1751
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr ""
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1802
 msgid "Stocktake"
 msgstr ""
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1884
 msgid "Supplier part not specified"
 msgstr ""
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1922
 msgid "No stock items matching query"
 msgstr ""
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2095
 msgid "Set Stock Status"
 msgstr ""
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2109
 msgid "Select Status Code"
 msgstr ""
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2110
 msgid "Status code must be selected"
 msgstr ""
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2365
 msgid "Details"
 msgstr ""
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2381
 msgid "Part information unavailable"
 msgstr ""
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2403
 msgid "Location no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2422
 msgid "Purchase order no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
 msgid "Customer no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2459
 msgid "Stock item no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2482
 msgid "Added"
 msgstr ""
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2490
 msgid "Removed"
 msgstr ""
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2566
 msgid "No installed items"
 msgstr ""
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
 msgid "Uninstall Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2666
 msgid "Select stock item to uninstall"
 msgstr ""
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2687
 msgid "Install another stock item into this item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2688
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr ""
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2690
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2691
 msgid "The Stock Item is currently available in stock"
 msgstr ""
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2692
 msgid "The Stock Item is not already installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2693
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr ""
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2706
 msgid "Select part to install"
 msgstr ""
 
@@ -9960,69 +9968,81 @@ msgstr ""
 msgid "Purchasable"
 msgstr ""
 
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr ""
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr ""
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
 msgid "Export Table Data"
 msgstr ""
 
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
 msgid "Select File Format"
 msgstr ""
 
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
 msgid "Loading data"
 msgstr ""
 
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
 msgid "rows per page"
 msgstr ""
 
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
 msgid "Showing all rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "Showing"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "to"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "of"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
 #: templates/search.html:8 templates/search_form.html:6
 #: templates/search_form.html:7
 msgid "Search"
 msgstr ""
 
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
 msgid "No matching results"
 msgstr ""
 
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
 msgid "Hide/Show pagination"
 msgstr ""
 
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
 msgid "Refresh"
 msgstr ""
 
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
 msgid "Toggle"
 msgstr ""
 
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
 msgid "Columns"
 msgstr ""
 
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
 msgid "All"
 msgstr ""
 
diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po
index de658fc91c..a62031ed68 100644
--- a/InvenTree/locale/ko/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ko/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
-"PO-Revision-Date: 2022-05-24 01:42\n"
+"POT-Creation-Date: 2022-05-28 23:41+0000\n"
+"PO-Revision-Date: 2022-05-29 01:47\n"
 "Last-Translator: \n"
 "Language-Team: Korean\n"
 "Language: ko_KR\n"
@@ -21,7 +21,7 @@ msgstr ""
 msgid "API endpoint not found"
 msgstr ""
 
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
 msgid "Error details can be found in the admin panel"
 msgstr ""
 
@@ -30,7 +30,7 @@ msgid "Enter date"
 msgstr ""
 
 #: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
 msgid "Confirm"
 msgstr "확인"
 
@@ -79,7 +79,7 @@ msgstr ""
 msgid "Duplicate serial: {sn}"
 msgstr ""
 
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
 msgid "Invalid quantity provided"
 msgstr ""
 
@@ -134,10 +134,12 @@ msgid "Select file to attach"
 msgstr "첨부할 파일을 선택하세요"
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:139 order/models.py:1273
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr "링크"
 
@@ -159,7 +161,7 @@ msgstr ""
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2513
 msgid "User"
 msgstr "사용자"
 
@@ -205,9 +207,10 @@ msgstr ""
 #: templates/InvenTree/settings/plugin.html:132
 #: templates/InvenTree/settings/plugin_settings.html:23
 #: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2283
 msgid "Name"
 msgstr "이름"
 
@@ -216,22 +219,22 @@ msgstr "이름"
 #: company/models.py:575 company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
 #: part/templates/part/part_base.html:167
 #: part/templates/part/set_category.html:14 report/models.py:182
 #: report/models.py:547 report/models.py:586
 #: report/templates/report/inventree_build_order_base.html:118
 #: stock/templates/stock/location.html:103
 #: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
 msgid "Description"
 msgstr "설명"
 
@@ -406,7 +409,7 @@ msgid "InvenTree system health checks failed"
 msgstr ""
 
 #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
 msgid "Pending"
 msgstr ""
 
@@ -414,141 +417,145 @@ msgstr ""
 msgid "Placed"
 msgstr ""
 
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
 #: order/templates/order/order_base.html:134
 #: order/templates/order/sales_order_base.html:133
 msgid "Complete"
 msgstr ""
 
 #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
 msgid "Cancelled"
 msgstr "취소됨"
 
 #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
 msgid "Lost"
 msgstr ""
 
 #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
 msgid "Returned"
 msgstr ""
 
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
 msgid "Shipped"
 msgstr ""
 
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
 msgid "OK"
 msgstr ""
 
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
 msgid "Attention needed"
 msgstr ""
 
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
 msgid "Damaged"
 msgstr "파손됨"
 
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
 msgid "Destroyed"
 msgstr "파괴됨"
 
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
 msgid "Rejected"
 msgstr ""
 
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
 msgid "Legacy stock tracking entry"
 msgstr ""
 
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
 msgid "Stock item created"
 msgstr ""
 
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
 msgid "Edited stock item"
 msgstr ""
 
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
 msgid "Assigned serial number"
 msgstr ""
 
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
 msgid "Stock counted"
 msgstr ""
 
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
 msgid "Stock manually added"
 msgstr ""
 
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
 msgid "Stock manually removed"
 msgstr ""
 
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
 msgid "Location changed"
 msgstr ""
 
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
 msgid "Installed into assembly"
 msgstr ""
 
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
 msgid "Removed from assembly"
 msgstr ""
 
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
 msgid "Installed component item"
 msgstr ""
 
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
 msgid "Removed component item"
 msgstr ""
 
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
 msgid "Split from parent item"
 msgstr ""
 
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
 msgid "Merged stock items"
 msgstr ""
 
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
 msgid "Converted to variant"
 msgstr ""
 
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
 msgid "Sent to customer"
 msgstr ""
 
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
 msgid "Returned from customer"
 msgstr ""
 
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
 msgid "Build order output created"
 msgstr ""
 
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
 msgid "Build order output completed"
 msgstr ""
 
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
 msgid "Consumed by build order"
 msgstr ""
 
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
 msgid "Received against purchase order"
 msgstr ""
 
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
 msgid "Production"
 msgstr ""
 
@@ -637,15 +644,15 @@ msgstr ""
 msgid "Build Order Reference"
 msgstr ""
 
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
 #: part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
 msgid "Reference"
 msgstr ""
 
@@ -664,7 +671,7 @@ msgstr ""
 
 #: build/models.py:225 build/templates/build/build_base.html:77
 #: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
 #: part/models.py:2303 part/models.py:2319 part/models.py:2338
 #: part/models.py:2355 part/models.py:2457 part/models.py:2579
 #: part/models.py:2669 part/models.py:2760 part/models.py:3050
@@ -679,19 +686,21 @@ msgstr ""
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
 #: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
 msgid "Part"
 msgstr ""
 
@@ -708,7 +717,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr ""
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
 msgid "Source Location"
 msgstr ""
 
@@ -749,7 +758,7 @@ msgid "Build status code"
 msgstr ""
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr ""
 
@@ -757,12 +766,12 @@ msgstr ""
 msgid "Batch code for this build output"
 msgstr ""
 
-#: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
 msgid "Creation Date"
 msgstr ""
 
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
 msgid "Target completion date"
 msgstr ""
 
@@ -770,8 +779,8 @@ msgstr ""
 msgid "Target date for build completion. Build will be overdue after this date."
 msgstr ""
 
-#: build/models.py:300 order/models.py:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
 msgid "Completion Date"
 msgstr ""
 
@@ -779,7 +788,7 @@ msgstr ""
 msgid "completed by"
 msgstr ""
 
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
 msgid "Issued by"
 msgstr ""
 
@@ -788,11 +797,11 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
 msgid "Responsible"
 msgstr ""
 
@@ -804,14 +813,14 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr "외부 링크"
 
 #: build/models.py:334 build/serializers.py:390
 #: build/templates/build/sidebar.html:21 company/models.py:134
 #: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
 #: order/templates/order/po_sidebar.html:11
 #: order/templates/order/so_sidebar.html:17 part/models.py:983
 #: part/templates/part/part_sidebar.html:59
@@ -820,11 +829,11 @@ msgstr "외부 링크"
 #: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
 msgid "Notes"
 msgstr ""
 
@@ -857,7 +866,7 @@ msgstr ""
 msgid "Stock item is over-allocated"
 msgstr ""
 
-#: build/models.py:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1413
 msgid "Allocation quantity must be greater than zero"
 msgstr ""
 
@@ -869,8 +878,8 @@ msgstr ""
 msgid "Selected stock item not found in BOM"
 msgstr ""
 
-#: build/models.py:1375 stock/templates/stock/item_base.html:335
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
 #: templates/navbar.html:38
 msgid "Build"
 msgstr ""
@@ -879,18 +888,18 @@ msgstr ""
 msgid "Build to allocate parts"
 msgstr ""
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2449
 msgid "Stock Item"
 msgstr ""
 
@@ -902,10 +911,10 @@ msgstr ""
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_build_order_base.html:114
@@ -913,25 +922,24 @@ 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
 msgid "Quantity"
 msgstr "수량"
 
@@ -948,7 +956,7 @@ msgid "Destination stock item"
 msgstr ""
 
 #: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
 msgid "Build Output"
 msgstr ""
 
@@ -972,7 +980,7 @@ msgstr ""
 msgid "Enter quantity for build output"
 msgstr ""
 
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
 #: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
 #: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
 #: stock/serializers.py:294
@@ -987,8 +995,8 @@ msgstr ""
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr ""
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr "일련번호"
@@ -1015,15 +1023,15 @@ msgstr ""
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
 msgid "Location"
 msgstr "위치"
 
@@ -1032,12 +1040,12 @@ msgid "Location for completed build outputs"
 msgstr ""
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: build/templates/build/detail.html:62 order/models.py:663
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
 msgid "Status"
 msgstr "상태"
 
@@ -1118,7 +1126,7 @@ msgstr ""
 msgid "Item must be in stock"
 msgstr ""
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr ""
@@ -1135,7 +1143,7 @@ msgstr ""
 msgid "This stock item has already been allocated to this build output"
 msgstr ""
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr ""
 
@@ -1233,13 +1241,13 @@ msgid "Stock has not been fully allocated to this Build Order"
 msgstr ""
 
 #: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr ""
 
@@ -1266,14 +1274,14 @@ msgid "Completed"
 msgstr ""
 
 #: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2436
 msgid "Sales Order"
 msgstr ""
 
@@ -1308,8 +1316,8 @@ msgstr ""
 msgid "Stock can be taken from any available location."
 msgstr ""
 
-#: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
 msgid "Destination"
 msgstr ""
 
@@ -1322,11 +1330,11 @@ msgid "Allocated Parts"
 msgstr ""
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
-#: templates/js/translated/build.js:1184
+#: stock/templates/stock/item_base.html:170
+#: templates/js/translated/build.js:1179
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1335,7 +1343,7 @@ msgstr ""
 #: build/templates/build/detail.html:126
 #: order/templates/order/order_base.html:149
 #: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
 msgid "Created"
 msgstr ""
 
@@ -1355,7 +1363,7 @@ msgstr ""
 msgid "Allocate Stock to Build"
 msgstr ""
 
-#: build/templates/build/detail.html:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
 msgid "Unallocate stock"
 msgstr ""
 
@@ -1385,8 +1393,8 @@ msgstr ""
 
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: company/templates/company/detail.html:85
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr ""
 
@@ -1461,8 +1469,8 @@ msgid "Completed Build Outputs"
 msgstr ""
 
 #: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
 #: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:82
 #: order/templates/order/sales_order_detail.html:129
@@ -1476,11 +1484,11 @@ msgstr ""
 msgid "Build Notes"
 msgstr ""
 
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
 msgid "Allocation Complete"
 msgstr ""
 
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
@@ -1492,18 +1500,6 @@ msgstr ""
 msgid "Print Build Orders"
 msgstr ""
 
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr ""
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr ""
-
 #: build/templates/build/sidebar.html:5
 msgid "Build Order Details"
 msgstr ""
@@ -1727,7 +1723,7 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
 #: templates/js/translated/table_filters.js:168
 #: templates/js/translated/table_filters.js:460
 msgid "Assembly"
@@ -2413,7 +2409,7 @@ msgid "Price break quantity"
 msgstr ""
 
 #: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: company/templates/company/supplier_part.html:263 order/models.py:975
 #: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
 msgid "Price"
 msgstr ""
@@ -2556,7 +2552,7 @@ msgstr ""
 
 #: company/models.py:104 company/templates/company/company_base.html:100
 #: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
 msgid "Website"
 msgstr "웹사이트"
 
@@ -2651,10 +2647,11 @@ msgstr ""
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: stock/templates/stock/item_base.html:212
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
 #: templates/js/translated/table_filters.js:411
 msgid "Manufacturer"
 msgstr ""
@@ -2665,8 +2662,10 @@ msgstr ""
 
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr ""
@@ -2686,7 +2685,7 @@ msgstr ""
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr ""
 
@@ -2696,8 +2695,9 @@ msgstr ""
 
 #: company/models.py:427
 #: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
 msgid "Value"
 msgstr ""
 
@@ -2708,7 +2708,7 @@ msgstr ""
 #: company/models.py:434 part/models.py:940 part/models.py:2549
 #: part/templates/part/part_base.html:280
 #: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
 msgid "Units"
 msgstr ""
 
@@ -2721,11 +2721,12 @@ msgid "Linked manufacturer part must reference the same base part"
 msgstr ""
 
 #: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: stock/templates/stock/item_base.html:229
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2736,8 +2737,9 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
 msgid "SKU"
 msgstr ""
 
@@ -2773,8 +2775,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr ""
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
 msgid "Packaging"
 msgstr ""
 
@@ -2804,12 +2806,12 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
 msgid "Company"
 msgstr "회사"
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr ""
 
@@ -2822,7 +2824,7 @@ msgid "Edit company information"
 msgstr "회사 정보 수정"
 
 #: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
 msgid "Edit Company"
 msgstr "회사 수정"
 
@@ -2845,12 +2847,12 @@ msgstr "새 이미지 업로드"
 msgid "Download image from URL"
 msgstr "URL에서 이미지 다운로드"
 
-#: company/templates/company/company_base.html:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr "고객"
@@ -2869,7 +2871,7 @@ msgid "Upload Image"
 msgstr "이미지 업로드"
 
 #: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
+#: company/templates/company/manufacturer_part_sidebar.html:7
 #: templates/InvenTree/search.html:118
 msgid "Supplier Parts"
 msgstr ""
@@ -2884,28 +2886,19 @@ msgstr ""
 msgid "New Supplier Part"
 msgstr ""
 
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr ""
-
 #: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
 #: part/templates/part/category.html:176
 msgid "Order parts"
 msgstr ""
 
 #: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
 msgid "Delete parts"
 msgstr ""
 
 #: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
 msgid "Delete Parts"
 msgstr ""
 
@@ -2917,88 +2910,76 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
 msgid "New Manufacturer Part"
 msgstr ""
 
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
 msgid "Supplier Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
 #: company/templates/company/sidebar.html:12
 #: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
 #: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:235 templates/navbar.html:50
 #: users/models.py:43
 msgid "Purchase Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
 #: order/templates/order/purchase_orders.html:17
 msgid "Create new purchase order"
 msgstr ""
 
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr ""
 
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
 #: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
 #: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
 #: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:259 templates/navbar.html:61
 #: users/models.py:44
 msgid "Sales Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
 #: order/templates/order/sales_orders.html:20
 msgid "Create new sales order"
 msgstr ""
 
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
 #: order/templates/order/sales_orders.html:21
 msgid "New Sales Order"
 msgstr ""
 
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
 msgid "Assigned Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
 msgid "Company Notes"
 msgstr ""
 
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr ""
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr ""
-
 #: company/templates/company/index.html:8
 msgid "Supplier List"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
 #: templates/navbar.html:49
 msgid "Manufacturers"
 msgstr ""
@@ -3011,12 +2992,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -3032,55 +3013,46 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:119
 #: company/templates/company/supplier_part.html:15 company/views.py:41
 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
 msgid "Suppliers"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
 #: part/templates/part/detail.html:363
 msgid "Delete supplier parts"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
 msgid "Delete"
 msgstr "삭제"
 
-#: company/templates/company/manufacturer_part.html:164
+#: company/templates/company/manufacturer_part.html:166
 #: company/templates/company/manufacturer_part_sidebar.html:5
 #: part/templates/part/category_sidebar.html:19
 #: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8
 msgid "Parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
 #: part/templates/part/detail.html:184
 #: templates/InvenTree/settings/category.html:12
 #: templates/InvenTree/settings/part.html:66
 msgid "New Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
 msgid "Delete parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
 msgid "Add Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr ""
-
 #: company/templates/company/sidebar.html:6
 msgid "Manufactured Parts"
 msgstr ""
@@ -3099,19 +3071,19 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
 msgid "Delete supplier part"
 msgstr ""
 
@@ -3186,11 +3158,11 @@ msgstr ""
 #: part/templates/part/part_sidebar.html:14
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
 #: templates/InvenTree/settings/sidebar.html:43
 #: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
 #: templates/navbar.html:31
 msgid "Stock"
 msgstr ""
@@ -3216,8 +3188,8 @@ msgstr ""
 #: stock/templates/stock/location.html:161
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
+#: templates/js/translated/stock.js:2307 users/models.py:41
 msgid "Stock Items"
 msgstr ""
 
@@ -3229,7 +3201,7 @@ msgstr ""
 msgid "New Manufacturer"
 msgstr ""
 
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
 #: templates/navbar.html:60
 msgid "Customers"
 msgstr ""
@@ -3238,7 +3210,7 @@ msgstr ""
 msgid "New Customer"
 msgstr "신규 고객"
 
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:212
 msgid "Companies"
 msgstr ""
 
@@ -3328,305 +3300,313 @@ msgstr ""
 msgid "Part query filters (comma-separated value of key=value pairs)"
 msgstr ""
 
-#: order/models.py:130
+#: order/models.py:137
 msgid "Order description"
 msgstr ""
 
-#: order/models.py:132
+#: order/models.py:139 order/models.py:1274
 msgid "Link to external page"
 msgstr ""
 
-#: order/models.py:140
+#: order/models.py:147
 msgid "Created By"
 msgstr ""
 
-#: order/models.py:147
+#: order/models.py:154
 msgid "User or group responsible for this order"
 msgstr ""
 
-#: order/models.py:152
+#: order/models.py:159
 msgid "Order notes"
 msgstr ""
 
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
 msgid "Order reference"
 msgstr ""
 
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
 msgid "Purchase order status"
 msgstr ""
 
-#: order/models.py:253
+#: order/models.py:311
 msgid "Company from which the items are being ordered"
 msgstr ""
 
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
 msgid "Supplier Reference"
 msgstr ""
 
-#: order/models.py:256
+#: order/models.py:314
 msgid "Supplier order reference code"
 msgstr ""
 
-#: order/models.py:263
+#: order/models.py:321
 msgid "received by"
 msgstr ""
 
-#: order/models.py:268
+#: order/models.py:326
 msgid "Issue Date"
 msgstr ""
 
-#: order/models.py:269
+#: order/models.py:327
 msgid "Date order was issued"
 msgstr ""
 
-#: order/models.py:274
+#: order/models.py:332
 msgid "Target Delivery Date"
 msgstr ""
 
-#: order/models.py:275
+#: order/models.py:333
 msgid "Expected date for order delivery. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:281
+#: order/models.py:339
 msgid "Date order was completed"
 msgstr ""
 
-#: order/models.py:310
+#: order/models.py:368
 msgid "Part supplier must match PO supplier"
 msgstr ""
 
-#: order/models.py:456
+#: order/models.py:514
 msgid "Quantity must be a positive number"
 msgstr ""
 
-#: order/models.py:601
+#: order/models.py:659
 msgid "Company to which the items are being sold"
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer Reference "
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer order reference code"
 msgstr ""
 
-#: order/models.py:612
+#: order/models.py:670
 msgid "Target date for order completion. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
 msgid "Shipment Date"
 msgstr ""
 
-#: order/models.py:622
+#: order/models.py:680
 msgid "shipped by"
 msgstr ""
 
-#: order/models.py:688
+#: order/models.py:746
 msgid "Order cannot be completed as no parts have been assigned"
 msgstr ""
 
-#: order/models.py:692
+#: order/models.py:750
 msgid "Only a pending order can be marked as complete"
 msgstr ""
 
-#: order/models.py:695
+#: order/models.py:753
 msgid "Order cannot be completed as there are incomplete shipments"
 msgstr ""
 
-#: order/models.py:698
+#: order/models.py:756
 msgid "Order cannot be completed as there are incomplete line items"
 msgstr ""
 
-#: order/models.py:878
+#: order/models.py:936
 msgid "Item quantity"
 msgstr ""
 
-#: order/models.py:884
+#: order/models.py:942
 msgid "Line item reference"
 msgstr ""
 
-#: order/models.py:886
+#: order/models.py:944
 msgid "Line item notes"
 msgstr ""
 
-#: order/models.py:891
+#: order/models.py:949
 msgid "Target shipping date for this line item"
 msgstr ""
 
-#: order/models.py:909
+#: order/models.py:967
 msgid "Context"
 msgstr ""
 
-#: order/models.py:910
+#: order/models.py:968
 msgid "Additional context for this line"
 msgstr ""
 
-#: order/models.py:918
+#: order/models.py:976
 msgid "Unit price"
 msgstr ""
 
-#: order/models.py:951
+#: order/models.py:1009
 msgid "Supplier part must match supplier"
 msgstr ""
 
-#: order/models.py:958
+#: order/models.py:1016
 msgid "deleted"
 msgstr ""
 
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
 msgid "Order"
 msgstr ""
 
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
 msgid "Purchase Order"
 msgstr ""
 
-#: order/models.py:984
+#: order/models.py:1042
 msgid "Supplier part"
 msgstr ""
 
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
 msgstr ""
 
-#: order/models.py:992
+#: order/models.py:1050
 msgid "Number of items received"
 msgstr ""
 
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1900
 msgid "Purchase Price"
 msgstr ""
 
-#: order/models.py:1000
+#: order/models.py:1058
 msgid "Unit purchase price"
 msgstr ""
 
-#: order/models.py:1008
+#: order/models.py:1066
 msgid "Where does the Purchaser want this item to be stored?"
 msgstr ""
 
-#: order/models.py:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
 #: part/templates/part/prices.html:119 part/templates/part/prices.html:288
 msgid "Sale Price"
 msgstr ""
 
-#: order/models.py:1079
+#: order/models.py:1137
 msgid "Unit sale price"
 msgstr ""
 
-#: order/models.py:1084
+#: order/models.py:1142
 msgid "Shipped quantity"
 msgstr ""
 
-#: order/models.py:1171
+#: order/models.py:1229
 msgid "Date of shipment"
 msgstr ""
 
-#: order/models.py:1178
+#: order/models.py:1236
 msgid "Checked By"
 msgstr ""
 
-#: order/models.py:1179
+#: order/models.py:1237
 msgid "User who checked this shipment"
 msgstr ""
 
-#: order/models.py:1187
+#: order/models.py:1245
 msgid "Shipment number"
 msgstr ""
 
-#: order/models.py:1194
+#: order/models.py:1252
 msgid "Shipment notes"
 msgstr ""
 
-#: order/models.py:1201
+#: order/models.py:1259
 msgid "Tracking Number"
 msgstr ""
 
-#: order/models.py:1202
+#: order/models.py:1260
 msgid "Shipment tracking information"
 msgstr ""
 
-#: order/models.py:1213
+#: order/models.py:1267
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1268
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1285
 msgid "Shipment has already been sent"
 msgstr ""
 
-#: order/models.py:1216
+#: order/models.py:1288
 msgid "Shipment has no allocated stock items"
 msgstr ""
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1395 order/models.py:1397
 msgid "Stock item has not been assigned"
 msgstr ""
 
-#: order/models.py:1317
+#: order/models.py:1401
 msgid "Cannot allocate stock item to a line with a different part"
 msgstr ""
 
-#: order/models.py:1319
+#: order/models.py:1403
 msgid "Cannot allocate stock to a line without a part"
 msgstr ""
 
-#: order/models.py:1322
+#: order/models.py:1406
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr ""
 
-#: order/models.py:1326
+#: order/models.py:1410
 msgid "StockItem is over-allocated"
 msgstr ""
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1416 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr ""
 
-#: order/models.py:1335
+#: order/models.py:1419
 msgid "Sales order does not match shipment"
 msgstr ""
 
-#: order/models.py:1336
+#: order/models.py:1420
 msgid "Shipment does not match sales order"
 msgstr ""
 
-#: order/models.py:1344
+#: order/models.py:1428
 msgid "Line"
 msgstr ""
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr ""
 
-#: order/models.py:1353
+#: order/models.py:1437
 msgid "Sales order shipment reference"
 msgstr ""
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr ""
 
-#: order/models.py:1366
+#: order/models.py:1450
 msgid "Select stock item to allocate"
 msgstr ""
 
-#: order/models.py:1369
+#: order/models.py:1453
 msgid "Enter stock allocation quantity"
 msgstr ""
 
@@ -3662,7 +3642,7 @@ msgstr ""
 msgid "Purchase order must match supplier"
 msgstr ""
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr ""
 
@@ -3674,11 +3654,11 @@ msgstr ""
 msgid "Select destination location for received items"
 msgstr ""
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr ""
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr ""
 
@@ -3714,35 +3694,35 @@ msgstr ""
 msgid "Sale price currency"
 msgstr ""
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr ""
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr ""
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr ""
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr ""
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr ""
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr ""
 
@@ -3832,7 +3812,12 @@ msgstr ""
 msgid "Total cost"
 msgstr ""
 
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
 msgid "Edit Purchase Order"
 msgstr ""
 
@@ -3863,9 +3848,9 @@ msgstr ""
 #: part/templates/part/import_wizard/ajax_match_references.html:42
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3929,7 +3914,7 @@ msgstr ""
 msgid "Order Notes"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
 msgid "Add Order Line"
 msgstr ""
 
@@ -3947,12 +3932,12 @@ msgid "Print packing list"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
 msgid "Complete Sales Order"
 msgstr ""
 
@@ -3961,7 +3946,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2471
 msgid "Customer Reference"
 msgstr ""
 
@@ -3971,7 +3956,7 @@ msgstr ""
 msgid "Completed Shipments"
 msgstr ""
 
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
 msgid "Edit Sales Order"
 msgstr ""
 
@@ -3985,7 +3970,7 @@ msgid "Pending Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
 msgid "Actions"
 msgstr ""
 
@@ -4113,7 +4098,7 @@ msgid "Part Category"
 msgstr ""
 
 #: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
 #: users/models.py:38
 msgid "Part Categories"
 msgstr ""
@@ -4124,7 +4109,7 @@ msgstr ""
 #: part/templates/part/category_sidebar.html:9
 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
 #: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
 #: templates/navbar.html:24 users/models.py:39
 msgid "Parts"
 msgstr ""
@@ -4202,7 +4187,7 @@ msgstr ""
 
 #: part/models.py:842 part/templates/part/part_base.html:266
 #: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
 msgid "IPN"
 msgstr ""
 
@@ -4316,7 +4301,7 @@ msgid "Test with this name already exists for this part"
 msgstr ""
 
 #: part/models.py:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
 msgid "Test Name"
 msgstr ""
 
@@ -4448,7 +4433,7 @@ msgid "BOM quantity for this BOM item"
 msgstr ""
 
 #: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
 #: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
@@ -4482,7 +4467,7 @@ msgid "BOM line checksum"
 msgstr ""
 
 #: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
 #: templates/js/translated/table_filters.js:68
 #: templates/js/translated/table_filters.js:88
 msgid "Inherited"
@@ -4493,7 +4478,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
 #: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
 msgid "Allow Variants"
 msgstr ""
 
@@ -4714,6 +4699,11 @@ msgstr ""
 msgid "New Part"
 msgstr ""
 
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr ""
+
 #: part/templates/part/category.html:172
 msgid "Set category"
 msgstr ""
@@ -4902,46 +4892,46 @@ msgstr ""
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
 msgid "Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
 msgid "Add Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
@@ -5084,8 +5074,8 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
 #: templates/js/translated/model_renderers.js:192
 #: templates/js/translated/part.js:581 templates/js/translated/part.js:658
 msgid "Inactive"
@@ -5101,20 +5091,22 @@ msgstr ""
 msgid "This part is a variant of %(link)s"
 msgstr ""
 
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr ""
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr ""
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
 msgid "Can Build"
 msgstr ""
 
@@ -5133,7 +5125,7 @@ msgid "Latest Serial Number"
 msgstr ""
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr "일련번호 검색"
 
@@ -5172,7 +5164,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -5291,7 +5283,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
 msgid "Supplier Cost"
 msgstr ""
 
@@ -5530,7 +5522,7 @@ msgstr ""
 msgid "Barcode associated with Stock Item"
 msgstr ""
 
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
 msgid "Label printing failed"
 msgstr ""
 
@@ -5770,12 +5762,12 @@ msgid "Stock Item Test Report"
 msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr "일련번호"
 
@@ -5796,7 +5788,7 @@ msgstr ""
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
 msgid "Date"
 msgstr ""
 
@@ -5815,7 +5807,7 @@ msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2589
 msgid "Serial"
 msgstr ""
 
@@ -5832,7 +5824,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr ""
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr ""
 
@@ -5894,7 +5886,7 @@ msgstr ""
 msgid "Packaging this stock item is stored in"
 msgstr ""
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr ""
 
@@ -5934,8 +5926,8 @@ msgstr ""
 msgid "Destination Sales Order"
 msgstr ""
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1816
 msgid "Expiry Date"
 msgstr ""
 
@@ -6215,11 +6207,11 @@ msgstr ""
 msgid "Installed Stock Items"
 msgstr ""
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
 msgid "Install Stock Item"
 msgstr ""
 
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
 msgid "Add Test Result"
 msgstr ""
 
@@ -6311,110 +6303,114 @@ msgstr ""
 msgid "Delete stock item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:244
-msgid "This stock item has not passed all required tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:252
-msgid "This stock item is allocated to Sales Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr ""
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:284
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:292
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1693
+msgid "No location set"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1832
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr ""
 
@@ -6486,8 +6482,8 @@ msgstr ""
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:198 users/models.py:40
 msgid "Stock Locations"
 msgstr ""
 
@@ -6539,7 +6535,7 @@ msgstr ""
 msgid "Child Items"
 msgstr ""
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr ""
 
@@ -6564,55 +6560,55 @@ msgstr ""
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr ""
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr ""
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr ""
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr ""
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr ""
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr ""
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr ""
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr ""
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr ""
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr ""
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr ""
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr ""
 
@@ -7331,9 +7327,9 @@ msgstr "InvenTree 버전 정보"
 
 #: templates/about.html:11 templates/about.html:105
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr ""
@@ -7602,14 +7598,14 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
 #: templates/js/translated/part.js:530
 #: templates/js/translated/table_filters.js:178
 msgid "Available"
@@ -7644,67 +7640,67 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
-#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
 msgid "No Response"
 msgstr ""
 
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
 msgid "No response from the InvenTree server"
 msgstr ""
 
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
 msgid "Error 400: Bad request"
 msgstr ""
 
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
 msgid "API request returned error code 400"
 msgstr ""
 
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
 msgid "Error 401: Not Authenticated"
 msgstr ""
 
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
 msgid "Authentication credentials not supplied"
 msgstr ""
 
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
 msgid "Error 403: Permission Denied"
 msgstr ""
 
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
 msgid "You do not have the required permissions to access this function"
 msgstr ""
 
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
 msgid "Error 404: Resource Not Found"
 msgstr ""
 
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
 msgid "The requested resource could not be located on the server"
 msgstr ""
 
-#: templates/js/translated/api.js:217
+#: templates/js/translated/api.js:262
 msgid "Error 405: Method Not Allowed"
 msgstr ""
 
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
 msgid "HTTP method not allowed at URL"
 msgstr ""
 
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
 msgid "Error 408: Timeout"
 msgstr "오류 408: 시간 초과"
 
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
 msgid "Connection timeout while requesting data from server"
 msgstr ""
 
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
 msgid "Unhandled Error Code"
 msgstr ""
 
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
 msgid "Error code"
 msgstr ""
 
@@ -7765,7 +7761,7 @@ msgid "Unknown response from server"
 msgstr ""
 
 #: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "Invalid server response"
 msgstr ""
 
@@ -7847,12 +7843,12 @@ msgid "Download BOM Template"
 msgstr ""
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
 msgid "Format"
 msgstr ""
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr ""
 
@@ -7932,84 +7928,84 @@ msgstr ""
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
 msgid "Load BOM for subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
 msgid "No Stock Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
 msgid "Includes variant and substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
 #: templates/js/translated/part.js:690
 msgid "Includes variant stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
 msgid "Includes substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -8131,262 +8127,270 @@ msgstr ""
 msgid "Location not specified"
 msgstr ""
 
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
 msgid "No active build outputs found"
 msgstr ""
 
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
 msgid "Allocated Stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
 msgid "No tracked BOM items for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
 msgid "Completed Tests"
 msgstr ""
 
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
 msgid "No required tests for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
 msgid "Edit stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
 msgid "Delete stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
 msgid "Edit Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
 msgid "Remove Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
 msgid "Substitute parts available"
 msgstr ""
 
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
 msgid "Quantity Per"
 msgstr ""
 
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
 msgid "Insufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
 msgid "Sufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
 msgid "Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
 msgid "Build stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
 msgid "Order stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
 msgid "Allocate stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr ""
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
 msgid "You must select at least one part to allocate"
 msgstr ""
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
 msgid "All Parts Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
 msgid "All selected parts have been fully allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
 msgid "Select source location (leave blank to take from all locations)"
 msgstr ""
 
-#: templates/js/translated/build.js:2117
+#: templates/js/translated/build.js:2100
 msgid "Allocate Stock Items to Build Order"
 msgstr ""
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
 msgid "No matching stock locations"
 msgstr ""
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
 msgid "No matching stock items"
 msgstr ""
 
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
 msgid "Automatic Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
 msgstr ""
 
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
 msgid "If a location is specifed, stock will only be allocated from that location"
 msgstr ""
 
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
 msgstr ""
 
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
 msgstr ""
 
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
 msgid "Allocate Stock Items"
 msgstr ""
 
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
 msgid "Select"
 msgstr "선택"
 
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
 msgid "Build order is overdue"
 msgstr ""
 
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
 msgid "Progress"
 msgstr ""
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
 msgid "No information"
 msgstr ""
 
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
 msgid "No parts allocated for"
 msgstr ""
 
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
 msgid "Add Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
 msgid "Edit Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:342
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr ""
+
+#: templates/js/translated/company.js:595
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
 #: templates/js/translated/part.js:650
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
 #: templates/js/translated/part.js:654
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
 msgid "No supplier parts found"
 msgstr ""
 
@@ -8424,61 +8428,61 @@ msgstr ""
 msgid "Create filter"
 msgstr ""
 
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
 msgid "Action Prohibited"
 msgstr ""
 
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
 msgid "Create operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
 msgid "Update operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
 msgid "Delete operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
 msgid "View operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
 msgid "Keep this form open"
 msgstr ""
 
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
 msgid "Enter a valid number"
 msgstr ""
 
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
 #: templates/modals.html:43
 msgid "Form errors exist"
 msgstr ""
 
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
 msgid "No results found"
 msgstr ""
 
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
 msgid "Searching"
 msgstr ""
 
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
 msgid "Clear input"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "File Column"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "Field Name"
 msgstr ""
 
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
 msgid "Select Columns"
 msgstr ""
 
@@ -8552,62 +8556,62 @@ msgstr ""
 msgid "Select Label Template"
 msgstr ""
 
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
 msgid "Cancel"
 msgstr "취소"
 
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
 #: templates/modals.html:28 templates/modals.html:51
 msgid "Submit"
 msgstr "제출"
 
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
 msgid "Form Title"
 msgstr ""
 
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
 msgid "Waiting for server..."
 msgstr ""
 
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
 msgid "Show Error Information"
 msgstr ""
 
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
 msgid "Accept"
 msgstr ""
 
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
 msgid "Loading Data"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Invalid response from server"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Form data missing from server response"
 msgstr ""
 
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
 msgid "Error posting form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "JSON response missing form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
 msgid "Error 400: Bad Request"
 msgstr ""
 
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
 msgid "Server returned error code 400"
 msgstr ""
 
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
 msgid "Error requesting form data"
 msgstr ""
 
@@ -8665,377 +8669,381 @@ msgstr ""
 msgid "Notifications will load here"
 msgstr ""
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
 msgstr ""
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
 msgstr ""
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr ""
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr ""
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr ""
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr ""
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr ""
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr ""
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr ""
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr ""
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr ""
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr ""
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr ""
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
 msgid "Stock Status"
 msgstr ""
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr ""
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr ""
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr ""
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
 msgid "Order is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
 msgid "Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
 msgid "Duplicate Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
 msgid "Edit Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
 msgid "Delete Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1856
 msgid "No line items found"
 msgstr ""
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
 msgid "Total"
 msgstr ""
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr "단가"
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
 msgid "Total Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
 msgid "Duplicate line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
 msgid "Edit line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
 msgid "Delete line item"
 msgstr ""
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
 msgid "Duplicate line"
 msgstr ""
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
 msgid "Edit line"
 msgstr ""
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
 msgid "Delete line"
 msgstr ""
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
 msgid "Duplicate Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
 msgid "Edit Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
 msgid "Delete Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2279
 msgid "No matching line"
 msgstr ""
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2392
 msgid "No sales orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2462
 msgid "Invalid Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2549
 msgid "Edit shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2552
 msgid "Complete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2557
 msgid "Delete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2577
 msgid "Edit Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2594
 msgid "Delete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2628
 msgid "No matching shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2638
 msgid "Shipment Reference"
 msgstr ""
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2662
 msgid "Not shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2668
 msgid "Tracking"
 msgstr ""
 
-#: templates/js/translated/order.js:2603
+#: templates/js/translated/order.js:2672
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:2841
 msgid "Add Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2892
 msgid "Confirm stock allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2893
 msgid "Allocate Stock Items to Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:3101
 msgid "No sales order allocations found"
 msgstr ""
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:3182
 msgid "Edit Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:3199
 msgid "Confirm Delete Operation"
 msgstr ""
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:3200
 msgid "Delete Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
 msgid "Shipped to customer"
 msgstr ""
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
 msgid "Stock location not specified"
 msgstr ""
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3623
 msgid "Allocate serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3629
 msgid "Purchase stock"
 msgstr ""
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
 msgid "Calculate price"
 msgstr ""
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3648
 msgid "Cannot be deleted as items have been shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3651
 msgid "Cannot be deleted as items have been allocated"
 msgstr ""
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3733
 msgid "Allocate Serial Numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3842
 msgid "Update Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3856
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:4092
 msgid "No matching lines"
 msgstr ""
 
@@ -9217,7 +9225,7 @@ msgid "No category"
 msgstr ""
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2238
 msgid "Display as list"
 msgstr ""
 
@@ -9225,7 +9233,7 @@ msgstr ""
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
 msgid "Display as tree"
 msgstr ""
 
@@ -9233,7 +9241,7 @@ msgstr ""
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
 msgid "Path"
 msgstr ""
 
@@ -9241,12 +9249,12 @@ msgstr ""
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
 msgid "Delete test result"
 msgstr ""
 
@@ -9367,11 +9375,11 @@ msgstr ""
 msgid "Sales Order(s) must be selected before printing report"
 msgstr ""
 
-#: templates/js/translated/search.js:307
+#: templates/js/translated/search.js:352
 msgid "Minimize results"
 msgstr ""
 
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:355
 msgid "Remove results"
 msgstr ""
 
@@ -9531,204 +9539,204 @@ msgstr ""
 msgid "Confirm stock adjustment"
 msgstr ""
 
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
 msgid "PASS"
 msgstr ""
 
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
 msgid "FAIL"
 msgstr ""
 
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
 msgid "NO RESULT"
 msgstr ""
 
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
 msgid "Pass test"
 msgstr ""
 
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
 msgid "Add test result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
 msgid "No test results found"
 msgstr ""
 
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
 msgid "Test Date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
 msgid "Edit Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
 msgid "Delete Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
 msgid "In production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
 msgid "Installed in Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
 msgid "Assigned to Sales Order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
 msgid "No stock location set"
 msgstr ""
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1712
 msgid "Stock item is in production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1717
 msgid "Stock item assigned to sales order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1720
 msgid "Stock item assigned to customer"
 msgstr ""
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr ""
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr ""
-
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
 msgid "Serialized stock item has been allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
 msgid "Stock item has been fully allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
 msgid "Stock item has been partially allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1730
 msgid "Stock item has been installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1734
+msgid "Stock item has expired"
+msgstr ""
+
+#: templates/js/translated/stock.js:1736
+msgid "Stock item will expire soon"
+msgstr ""
+
+#: templates/js/translated/stock.js:1743
 msgid "Stock item has been rejected"
 msgstr ""
 
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1745
 msgid "Stock item is lost"
 msgstr ""
 
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1747
 msgid "Stock item is destroyed"
 msgstr ""
 
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1751
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr ""
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1802
 msgid "Stocktake"
 msgstr ""
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1884
 msgid "Supplier part not specified"
 msgstr ""
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1922
 msgid "No stock items matching query"
 msgstr ""
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2095
 msgid "Set Stock Status"
 msgstr ""
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2109
 msgid "Select Status Code"
 msgstr ""
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2110
 msgid "Status code must be selected"
 msgstr ""
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2365
 msgid "Details"
 msgstr ""
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2381
 msgid "Part information unavailable"
 msgstr ""
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2403
 msgid "Location no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2422
 msgid "Purchase order no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
 msgid "Customer no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2459
 msgid "Stock item no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2482
 msgid "Added"
 msgstr ""
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2490
 msgid "Removed"
 msgstr ""
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2566
 msgid "No installed items"
 msgstr ""
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
 msgid "Uninstall Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2666
 msgid "Select stock item to uninstall"
 msgstr ""
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2687
 msgid "Install another stock item into this item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2688
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr ""
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2690
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2691
 msgid "The Stock Item is currently available in stock"
 msgstr ""
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2692
 msgid "The Stock Item is not already installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2693
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr ""
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2706
 msgid "Select part to install"
 msgstr ""
 
@@ -9960,69 +9968,81 @@ msgstr ""
 msgid "Purchasable"
 msgstr ""
 
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr ""
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr ""
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
 msgid "Export Table Data"
 msgstr ""
 
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
 msgid "Select File Format"
 msgstr ""
 
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
 msgid "Loading data"
 msgstr ""
 
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
 msgid "rows per page"
 msgstr ""
 
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
 msgid "Showing all rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "Showing"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "to"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "of"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
 #: templates/search.html:8 templates/search_form.html:6
 #: templates/search_form.html:7
 msgid "Search"
 msgstr ""
 
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
 msgid "No matching results"
 msgstr ""
 
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
 msgid "Hide/Show pagination"
 msgstr ""
 
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
 msgid "Refresh"
 msgstr ""
 
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
 msgid "Toggle"
 msgstr ""
 
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
 msgid "Columns"
 msgstr ""
 
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
 msgid "All"
 msgstr ""
 
diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po
index 323d5e11c5..14f6562b33 100644
--- a/InvenTree/locale/nl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/nl/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
-"PO-Revision-Date: 2022-05-24 01:42\n"
+"POT-Creation-Date: 2022-05-28 23:41+0000\n"
+"PO-Revision-Date: 2022-05-29 01:47\n"
 "Last-Translator: \n"
 "Language-Team: Dutch\n"
 "Language: nl_NL\n"
@@ -21,16 +21,16 @@ msgstr ""
 msgid "API endpoint not found"
 msgstr "API eindpunt niet gevonden"
 
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
 msgid "Error details can be found in the admin panel"
-msgstr ""
+msgstr "Error details kunnen worden gevonden in het admin scherm"
 
 #: InvenTree/fields.py:96
 msgid "Enter date"
 msgstr "Voer datum in"
 
 #: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
 msgid "Confirm"
 msgstr "Bevestigen"
 
@@ -79,7 +79,7 @@ msgstr "Er moet hetzelfde e-mailadres ingevoerd worden."
 msgid "Duplicate serial: {sn}"
 msgstr "Duplicaat serienummer: {sn}"
 
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
 msgid "Invalid quantity provided"
 msgstr "Ongeldige hoeveelheid ingevoerd"
 
@@ -134,10 +134,12 @@ msgid "Select file to attach"
 msgstr "Bestand als bijlage selecteren"
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:139 order/models.py:1273
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr "Link"
 
@@ -159,7 +161,7 @@ msgstr "Bestand opmerking"
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2513
 msgid "User"
 msgstr "Gebruiker"
 
@@ -205,9 +207,10 @@ msgstr "Ongeldige keuze"
 #: templates/InvenTree/settings/plugin.html:132
 #: templates/InvenTree/settings/plugin_settings.html:23
 #: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2283
 msgid "Name"
 msgstr "Naam"
 
@@ -216,22 +219,22 @@ msgstr "Naam"
 #: company/models.py:575 company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
 #: part/templates/part/part_base.html:167
 #: part/templates/part/set_category.html:14 report/models.py:182
 #: report/models.py:547 report/models.py:586
 #: report/templates/report/inventree_build_order_base.html:118
 #: stock/templates/stock/location.html:103
 #: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
 msgid "Description"
 msgstr "Omschrijving"
 
@@ -406,7 +409,7 @@ msgid "InvenTree system health checks failed"
 msgstr "InvenTree gezondsheidschecks mislukt"
 
 #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
 msgid "Pending"
 msgstr "Bezig"
 
@@ -414,141 +417,145 @@ msgstr "Bezig"
 msgid "Placed"
 msgstr "Geplaatst"
 
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
 #: order/templates/order/order_base.html:134
 #: order/templates/order/sales_order_base.html:133
 msgid "Complete"
 msgstr "Voltooid"
 
 #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
 msgid "Cancelled"
 msgstr "Geannuleerd"
 
 #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
 msgid "Lost"
 msgstr "Kwijt"
 
 #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
 msgid "Returned"
 msgstr "Retour"
 
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
 msgid "Shipped"
 msgstr "Verzonden"
 
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
 msgid "OK"
 msgstr "OK"
 
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
 msgid "Attention needed"
 msgstr "Aandacht nodig"
 
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
 msgid "Damaged"
 msgstr "Beschadigd"
 
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
 msgid "Destroyed"
 msgstr "Verwoest"
 
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
 msgid "Rejected"
 msgstr "Afgewezen"
 
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
 msgid "Legacy stock tracking entry"
 msgstr "Verouderde volgcode"
 
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
 msgid "Stock item created"
 msgstr "Voorraaditem gemaakt"
 
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
 msgid "Edited stock item"
 msgstr "Bewerken voorraadartikel"
 
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
 msgid "Assigned serial number"
 msgstr "Serienummer toegewezen"
 
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
 msgid "Stock counted"
 msgstr "Voorraad geteld"
 
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
 msgid "Stock manually added"
 msgstr "Voorraad handmatig toegevoegd"
 
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
 msgid "Stock manually removed"
 msgstr "Voorraad handmatig verwijderd"
 
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
 msgid "Location changed"
 msgstr "Locatie veranderd"
 
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
 msgid "Installed into assembly"
 msgstr "Gemonteerd"
 
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
 msgid "Removed from assembly"
 msgstr "Gedemonteerd"
 
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
 msgid "Installed component item"
 msgstr "Geïnstalleerd componentartikel"
 
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
 msgid "Removed component item"
 msgstr "Verwijderd componentartikel"
 
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
 msgid "Split from parent item"
 msgstr "Splits van bovenliggend item"
 
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
 msgid "Split child item"
 msgstr "Splits onderliggende item"
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
 msgid "Merged stock items"
 msgstr "Samengevoegde voorraadartikelen"
 
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
 msgid "Converted to variant"
 msgstr "Geconverteerd naar variant"
 
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
 msgid "Sent to customer"
 msgstr "Naar klant verzonden"
 
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
 msgid "Returned from customer"
 msgstr "Geretourneerd door klant"
 
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
 msgid "Build order output created"
 msgstr "Product aangemaakt"
 
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
 msgid "Build order output completed"
 msgstr "Product voltooid"
 
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
 msgid "Consumed by build order"
 msgstr "Verbruikt door productieopdracht"
 
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
 msgid "Received against purchase order"
 msgstr "Ontvangen tegen inkoopopdracht"
 
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
 msgid "Production"
 msgstr "Productie"
 
@@ -637,15 +644,15 @@ msgstr "Productieopdrachten"
 msgid "Build Order Reference"
 msgstr "Productieopdracht Referentie"
 
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
 #: part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
 msgid "Reference"
 msgstr "Referentie"
 
@@ -664,7 +671,7 @@ msgstr "Productieopdracht waar dit productie aan is toegewezen"
 
 #: build/models.py:225 build/templates/build/build_base.html:77
 #: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
 #: part/models.py:2303 part/models.py:2319 part/models.py:2338
 #: part/models.py:2355 part/models.py:2457 part/models.py:2579
 #: part/models.py:2669 part/models.py:2760 part/models.py:3050
@@ -679,19 +686,21 @@ msgstr "Productieopdracht waar dit productie aan is toegewezen"
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
 #: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
 msgid "Part"
 msgstr "Onderdeel"
 
@@ -708,7 +717,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr "Verkooporder waar deze productie aan is toegewezen"
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
 msgid "Source Location"
 msgstr "Bronlocatie"
 
@@ -749,7 +758,7 @@ msgid "Build status code"
 msgstr "Productiestatuscode"
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr "Batchcode"
 
@@ -757,12 +766,12 @@ msgstr "Batchcode"
 msgid "Batch code for this build output"
 msgstr "Batchcode voor deze productieuitvoer"
 
-#: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
 msgid "Creation Date"
 msgstr "Aanmaakdatum"
 
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
 msgid "Target completion date"
 msgstr "Verwachte opleveringsdatum"
 
@@ -770,8 +779,8 @@ msgstr "Verwachte opleveringsdatum"
 msgid "Target date for build completion. Build will be overdue after this date."
 msgstr "Doeldatum voor productie voltooiing. Productie zal achterstallig zijn na deze datum."
 
-#: build/models.py:300 order/models.py:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
 msgid "Completion Date"
 msgstr "Opleveringsdatum"
 
@@ -779,7 +788,7 @@ msgstr "Opleveringsdatum"
 msgid "completed by"
 msgstr "voltooid door"
 
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
 msgid "Issued by"
 msgstr "Uitgegeven door"
 
@@ -788,11 +797,11 @@ msgid "User who issued this build order"
 msgstr "Gebruiker die de productie-opdracht heeft gegeven"
 
 #: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
 msgid "Responsible"
 msgstr "Verantwoordelijke"
 
@@ -804,14 +813,14 @@ msgstr "Gebruiker verantwoordelijk voor deze productieopdracht"
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr "Externe Link"
 
 #: build/models.py:334 build/serializers.py:390
 #: build/templates/build/sidebar.html:21 company/models.py:134
 #: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
 #: order/templates/order/po_sidebar.html:11
 #: order/templates/order/so_sidebar.html:17 part/models.py:983
 #: part/templates/part/part_sidebar.html:59
@@ -820,11 +829,11 @@ msgstr "Externe Link"
 #: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
 msgid "Notes"
 msgstr "Opmerkingen"
 
@@ -857,7 +866,7 @@ msgstr "Toegewezen hoeveelheid ({q}) mag de beschikbare voorraad ({a}) niet over
 msgid "Stock item is over-allocated"
 msgstr "Voorraad item is te veel toegewezen"
 
-#: build/models.py:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1413
 msgid "Allocation quantity must be greater than zero"
 msgstr "Toewijzing hoeveelheid moet groter zijn dan nul"
 
@@ -869,8 +878,8 @@ msgstr "Hoeveelheid moet 1 zijn voor geserialiseerde voorraad"
 msgid "Selected stock item not found in BOM"
 msgstr "Geselecteerd voorraadartikel niet gevonden in stuklijst"
 
-#: build/models.py:1375 stock/templates/stock/item_base.html:335
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
 #: templates/navbar.html:38
 msgid "Build"
 msgstr "Product"
@@ -879,18 +888,18 @@ msgstr "Product"
 msgid "Build to allocate parts"
 msgstr "Product om onderdelen toe te wijzen"
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2449
 msgid "Stock Item"
 msgstr "Voorraadartikel"
 
@@ -902,10 +911,10 @@ msgstr "Bron voorraadartikel"
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_build_order_base.html:114
@@ -913,25 +922,24 @@ msgstr "Bron voorraadartikel"
 #: 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
 msgid "Quantity"
 msgstr "Hoeveelheid"
 
@@ -948,7 +956,7 @@ msgid "Destination stock item"
 msgstr "Bestemming voorraadartikel"
 
 #: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
 msgid "Build Output"
 msgstr "Productieuitvoer"
 
@@ -972,7 +980,7 @@ msgstr "Deze productieuitvoer is niet volledig toegewezen"
 msgid "Enter quantity for build output"
 msgstr "Voer hoeveelheid in voor productie uitvoer"
 
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
 #: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
 #: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
 #: stock/serializers.py:294
@@ -987,8 +995,8 @@ msgstr "Hoeveelheid als geheel getal vereist voor traceerbare onderdelen"
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr "Geheel getal vereist omdat de stuklijst traceerbare onderdelen bevat"
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr "Serienummers"
@@ -1015,15 +1023,15 @@ msgstr "Een lijst van productieuitvoeren moet worden verstrekt"
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
 msgid "Location"
 msgstr "Locatie"
 
@@ -1032,12 +1040,12 @@ msgid "Location for completed build outputs"
 msgstr "Locatie van voltooide productieuitvoeren"
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: build/templates/build/detail.html:62 order/models.py:663
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
 msgid "Status"
 msgstr "Status"
 
@@ -1118,7 +1126,7 @@ msgstr "bom_item.part moet naar hetzelfde onderdeel wijzen als de productieorder
 msgid "Item must be in stock"
 msgstr "Artikel moet op voorraad zijn"
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr "Beschikbare hoeveelheid ({q}) overschreden"
@@ -1135,7 +1143,7 @@ msgstr "Productieuitvoer kan niet worden gespecificeerd voor de toewijzing van n
 msgid "This stock item has already been allocated to this build output"
 msgstr "Dit voorraadartikel is al toegewezen aan deze productieoutput"
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr ""
 
@@ -1233,13 +1241,13 @@ msgid "Stock has not been fully allocated to this Build Order"
 msgstr "Voorraad is niet volledig toegewezen aan deze productieopdracht"
 
 #: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr "Streefdatum"
 
@@ -1266,14 +1274,14 @@ msgid "Completed"
 msgstr "Voltooid"
 
 #: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2436
 msgid "Sales Order"
 msgstr "Verkooporder"
 
@@ -1308,8 +1316,8 @@ msgstr "Voorraadbron"
 msgid "Stock can be taken from any available location."
 msgstr "Voorraad kan worden genomen van elke beschikbare locatie."
 
-#: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
 msgid "Destination"
 msgstr "Bestemming"
 
@@ -1322,11 +1330,11 @@ msgid "Allocated Parts"
 msgstr "Toegewezen Onderdelen"
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
-#: templates/js/translated/build.js:1184
+#: stock/templates/stock/item_base.html:170
+#: templates/js/translated/build.js:1179
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1335,7 +1343,7 @@ msgstr "Batch"
 #: build/templates/build/detail.html:126
 #: order/templates/order/order_base.html:149
 #: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
 msgid "Created"
 msgstr "Gecreëerd"
 
@@ -1355,7 +1363,7 @@ msgstr "Onderliggende Productieorders"
 msgid "Allocate Stock to Build"
 msgstr "Voorraad toewijzen aan Product"
 
-#: build/templates/build/detail.html:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
 msgid "Unallocate stock"
 msgstr "Voorraadtoewijzing ongedaan maken"
 
@@ -1385,8 +1393,8 @@ msgstr "Vereiste onderdelen bestellen"
 
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: company/templates/company/detail.html:85
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr "Onderdelen bestellen"
 
@@ -1461,8 +1469,8 @@ msgid "Completed Build Outputs"
 msgstr "Voltooide Productieuitvoeren"
 
 #: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
 #: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:82
 #: order/templates/order/sales_order_detail.html:129
@@ -1476,11 +1484,11 @@ msgstr "Bijlagen"
 msgid "Build Notes"
 msgstr "Productie notities"
 
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
 msgid "Allocation Complete"
 msgstr "Toewijzing Voltooid"
 
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
 msgid "All untracked stock items have been allocated"
 msgstr "Alle niet gevolgde voorraadartikelen zijn toegewezen"
 
@@ -1492,18 +1500,6 @@ msgstr "Nieuwe Productieopdracht"
 msgid "Print Build Orders"
 msgstr "Print Productieopdrachten"
 
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr "Toon Kalenderweergave"
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr "Toon Lijstweergave"
-
 #: build/templates/build/sidebar.html:5
 msgid "Build Order Details"
 msgstr "Productieopdracht Details"
@@ -1727,7 +1723,7 @@ msgstr "Sjabloon"
 msgid "Parts are templates by default"
 msgstr "Onderdelen zijn standaard sjablonen"
 
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
 #: templates/js/translated/table_filters.js:168
 #: templates/js/translated/table_filters.js:460
 msgid "Assembly"
@@ -2122,11 +2118,11 @@ msgstr ""
 
 #: common/models.py:1290
 msgid "Show latest parts"
-msgstr ""
+msgstr "Toon laatste onderdelen"
 
 #: common/models.py:1291
 msgid "Show latest parts on the homepage"
-msgstr ""
+msgstr "Toon laatste onderdelen op de startpagina"
 
 #: common/models.py:1297
 msgid "Recent Part Count"
@@ -2413,7 +2409,7 @@ msgid "Price break quantity"
 msgstr ""
 
 #: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: company/templates/company/supplier_part.html:263 order/models.py:975
 #: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
 msgid "Price"
 msgstr ""
@@ -2556,7 +2552,7 @@ msgstr ""
 
 #: company/models.py:104 company/templates/company/company_base.html:100
 #: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
 msgid "Website"
 msgstr ""
 
@@ -2651,10 +2647,11 @@ msgstr ""
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: stock/templates/stock/item_base.html:212
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
 #: templates/js/translated/table_filters.js:411
 msgid "Manufacturer"
 msgstr "Fabrikant"
@@ -2665,8 +2662,10 @@ msgstr "Fabrikant selecteren"
 
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr ""
@@ -2686,7 +2685,7 @@ msgstr "Omschrijving onderdeel fabrikant"
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr "Fabrikant onderdeel"
 
@@ -2696,8 +2695,9 @@ msgstr ""
 
 #: company/models.py:427
 #: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
 msgid "Value"
 msgstr "Waarde"
 
@@ -2708,7 +2708,7 @@ msgstr "Parameterwaarde"
 #: company/models.py:434 part/models.py:940 part/models.py:2549
 #: part/templates/part/part_base.html:280
 #: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
 msgid "Units"
 msgstr "Eenheden"
 
@@ -2721,11 +2721,12 @@ msgid "Linked manufacturer part must reference the same base part"
 msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderdeel"
 
 #: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: stock/templates/stock/item_base.html:229
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2736,8 +2737,9 @@ msgid "Select supplier"
 msgstr "Leverancier selecteren"
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
 msgid "SKU"
 msgstr ""
 
@@ -2773,8 +2775,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr "Minimale kosten (bijv. voorraadkosten)"
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
 msgid "Packaging"
 msgstr ""
 
@@ -2804,12 +2806,12 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
 msgid "Company"
 msgstr ""
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr ""
 
@@ -2822,7 +2824,7 @@ msgid "Edit company information"
 msgstr ""
 
 #: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
 msgid "Edit Company"
 msgstr ""
 
@@ -2845,12 +2847,12 @@ msgstr ""
 msgid "Download image from URL"
 msgstr ""
 
-#: company/templates/company/company_base.html:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr ""
@@ -2869,7 +2871,7 @@ msgid "Upload Image"
 msgstr ""
 
 #: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
+#: company/templates/company/manufacturer_part_sidebar.html:7
 #: templates/InvenTree/search.html:118
 msgid "Supplier Parts"
 msgstr ""
@@ -2884,28 +2886,19 @@ msgstr ""
 msgid "New Supplier Part"
 msgstr ""
 
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr ""
-
 #: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
 #: part/templates/part/category.html:176
 msgid "Order parts"
 msgstr ""
 
 #: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
 msgid "Delete parts"
 msgstr ""
 
 #: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
 msgid "Delete Parts"
 msgstr ""
 
@@ -2917,88 +2910,76 @@ msgstr "Fabrikant onderdelen"
 msgid "Create new manufacturer part"
 msgstr "Maak nieuw fabrikant onderdeel"
 
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
 msgid "New Manufacturer Part"
 msgstr "Nieuw fabrikant onderdeel"
 
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
 msgid "Supplier Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
 #: company/templates/company/sidebar.html:12
 #: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
 #: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:235 templates/navbar.html:50
 #: users/models.py:43
 msgid "Purchase Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
 #: order/templates/order/purchase_orders.html:17
 msgid "Create new purchase order"
 msgstr ""
 
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr ""
 
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
 #: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
 #: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
 #: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:259 templates/navbar.html:61
 #: users/models.py:44
 msgid "Sales Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
 #: order/templates/order/sales_orders.html:20
 msgid "Create new sales order"
 msgstr ""
 
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
 #: order/templates/order/sales_orders.html:21
 msgid "New Sales Order"
 msgstr ""
 
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
 msgid "Assigned Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
 msgid "Company Notes"
 msgstr ""
 
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr ""
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr ""
-
 #: company/templates/company/index.html:8
 msgid "Supplier List"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
 #: templates/navbar.html:49
 msgid "Manufacturers"
 msgstr "Fabrikanten"
@@ -3011,12 +2992,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
 msgid "Edit manufacturer part"
 msgstr "Fabrikant onderdeel bewerken"
 
 #: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
 msgid "Delete manufacturer part"
 msgstr "Fabrikant onderdeel verwijderen"
 
@@ -3032,55 +3013,46 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:119
 #: company/templates/company/supplier_part.html:15 company/views.py:41
 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
 msgid "Suppliers"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
 #: part/templates/part/detail.html:363
 msgid "Delete supplier parts"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
 msgid "Delete"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:164
+#: company/templates/company/manufacturer_part.html:166
 #: company/templates/company/manufacturer_part_sidebar.html:5
 #: part/templates/part/category_sidebar.html:19
 #: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8
 msgid "Parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
 #: part/templates/part/detail.html:184
 #: templates/InvenTree/settings/category.html:12
 #: templates/InvenTree/settings/part.html:66
 msgid "New Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
 msgid "Delete parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
 msgid "Add Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr ""
-
 #: company/templates/company/sidebar.html:6
 msgid "Manufactured Parts"
 msgstr "Gefabriceerde onderdelen"
@@ -3099,19 +3071,19 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
 msgid "Delete supplier part"
 msgstr ""
 
@@ -3186,11 +3158,11 @@ msgstr ""
 #: part/templates/part/part_sidebar.html:14
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
 #: templates/InvenTree/settings/sidebar.html:43
 #: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
 #: templates/navbar.html:31
 msgid "Stock"
 msgstr ""
@@ -3216,8 +3188,8 @@ msgstr ""
 #: stock/templates/stock/location.html:161
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
+#: templates/js/translated/stock.js:2307 users/models.py:41
 msgid "Stock Items"
 msgstr ""
 
@@ -3229,7 +3201,7 @@ msgstr ""
 msgid "New Manufacturer"
 msgstr "Nieuwe fabrikant"
 
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
 #: templates/navbar.html:60
 msgid "Customers"
 msgstr ""
@@ -3238,7 +3210,7 @@ msgstr ""
 msgid "New Customer"
 msgstr ""
 
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:212
 msgid "Companies"
 msgstr ""
 
@@ -3328,305 +3300,313 @@ msgstr ""
 msgid "Part query filters (comma-separated value of key=value pairs)"
 msgstr ""
 
-#: order/models.py:130
+#: order/models.py:137
 msgid "Order description"
 msgstr ""
 
-#: order/models.py:132
+#: order/models.py:139 order/models.py:1274
 msgid "Link to external page"
 msgstr ""
 
-#: order/models.py:140
+#: order/models.py:147
 msgid "Created By"
 msgstr ""
 
-#: order/models.py:147
+#: order/models.py:154
 msgid "User or group responsible for this order"
 msgstr ""
 
-#: order/models.py:152
+#: order/models.py:159
 msgid "Order notes"
 msgstr ""
 
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
 msgid "Order reference"
 msgstr ""
 
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
 msgid "Purchase order status"
 msgstr ""
 
-#: order/models.py:253
+#: order/models.py:311
 msgid "Company from which the items are being ordered"
 msgstr ""
 
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
 msgid "Supplier Reference"
 msgstr ""
 
-#: order/models.py:256
+#: order/models.py:314
 msgid "Supplier order reference code"
 msgstr ""
 
-#: order/models.py:263
+#: order/models.py:321
 msgid "received by"
 msgstr ""
 
-#: order/models.py:268
+#: order/models.py:326
 msgid "Issue Date"
 msgstr ""
 
-#: order/models.py:269
+#: order/models.py:327
 msgid "Date order was issued"
 msgstr ""
 
-#: order/models.py:274
+#: order/models.py:332
 msgid "Target Delivery Date"
 msgstr ""
 
-#: order/models.py:275
+#: order/models.py:333
 msgid "Expected date for order delivery. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:281
+#: order/models.py:339
 msgid "Date order was completed"
 msgstr ""
 
-#: order/models.py:310
+#: order/models.py:368
 msgid "Part supplier must match PO supplier"
 msgstr ""
 
-#: order/models.py:456
+#: order/models.py:514
 msgid "Quantity must be a positive number"
 msgstr ""
 
-#: order/models.py:601
+#: order/models.py:659
 msgid "Company to which the items are being sold"
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer Reference "
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer order reference code"
 msgstr ""
 
-#: order/models.py:612
+#: order/models.py:670
 msgid "Target date for order completion. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
 msgid "Shipment Date"
 msgstr ""
 
-#: order/models.py:622
+#: order/models.py:680
 msgid "shipped by"
 msgstr ""
 
-#: order/models.py:688
+#: order/models.py:746
 msgid "Order cannot be completed as no parts have been assigned"
 msgstr ""
 
-#: order/models.py:692
+#: order/models.py:750
 msgid "Only a pending order can be marked as complete"
 msgstr ""
 
-#: order/models.py:695
+#: order/models.py:753
 msgid "Order cannot be completed as there are incomplete shipments"
 msgstr ""
 
-#: order/models.py:698
+#: order/models.py:756
 msgid "Order cannot be completed as there are incomplete line items"
 msgstr ""
 
-#: order/models.py:878
+#: order/models.py:936
 msgid "Item quantity"
 msgstr ""
 
-#: order/models.py:884
+#: order/models.py:942
 msgid "Line item reference"
 msgstr ""
 
-#: order/models.py:886
+#: order/models.py:944
 msgid "Line item notes"
 msgstr ""
 
-#: order/models.py:891
+#: order/models.py:949
 msgid "Target shipping date for this line item"
 msgstr ""
 
-#: order/models.py:909
+#: order/models.py:967
 msgid "Context"
 msgstr ""
 
-#: order/models.py:910
+#: order/models.py:968
 msgid "Additional context for this line"
 msgstr ""
 
-#: order/models.py:918
+#: order/models.py:976
 msgid "Unit price"
 msgstr ""
 
-#: order/models.py:951
+#: order/models.py:1009
 msgid "Supplier part must match supplier"
 msgstr ""
 
-#: order/models.py:958
+#: order/models.py:1016
 msgid "deleted"
 msgstr ""
 
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
 msgid "Order"
 msgstr ""
 
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
 msgid "Purchase Order"
 msgstr ""
 
-#: order/models.py:984
+#: order/models.py:1042
 msgid "Supplier part"
 msgstr ""
 
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
 msgstr ""
 
-#: order/models.py:992
+#: order/models.py:1050
 msgid "Number of items received"
 msgstr ""
 
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1900
 msgid "Purchase Price"
 msgstr ""
 
-#: order/models.py:1000
+#: order/models.py:1058
 msgid "Unit purchase price"
 msgstr ""
 
-#: order/models.py:1008
+#: order/models.py:1066
 msgid "Where does the Purchaser want this item to be stored?"
 msgstr ""
 
-#: order/models.py:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
 #: part/templates/part/prices.html:119 part/templates/part/prices.html:288
 msgid "Sale Price"
 msgstr ""
 
-#: order/models.py:1079
+#: order/models.py:1137
 msgid "Unit sale price"
 msgstr ""
 
-#: order/models.py:1084
+#: order/models.py:1142
 msgid "Shipped quantity"
 msgstr ""
 
-#: order/models.py:1171
+#: order/models.py:1229
 msgid "Date of shipment"
 msgstr ""
 
-#: order/models.py:1178
+#: order/models.py:1236
 msgid "Checked By"
 msgstr ""
 
-#: order/models.py:1179
+#: order/models.py:1237
 msgid "User who checked this shipment"
 msgstr ""
 
-#: order/models.py:1187
+#: order/models.py:1245
 msgid "Shipment number"
 msgstr ""
 
-#: order/models.py:1194
+#: order/models.py:1252
 msgid "Shipment notes"
 msgstr ""
 
-#: order/models.py:1201
+#: order/models.py:1259
 msgid "Tracking Number"
 msgstr ""
 
-#: order/models.py:1202
+#: order/models.py:1260
 msgid "Shipment tracking information"
 msgstr ""
 
-#: order/models.py:1213
+#: order/models.py:1267
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1268
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1285
 msgid "Shipment has already been sent"
 msgstr ""
 
-#: order/models.py:1216
+#: order/models.py:1288
 msgid "Shipment has no allocated stock items"
 msgstr ""
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1395 order/models.py:1397
 msgid "Stock item has not been assigned"
 msgstr ""
 
-#: order/models.py:1317
+#: order/models.py:1401
 msgid "Cannot allocate stock item to a line with a different part"
 msgstr ""
 
-#: order/models.py:1319
+#: order/models.py:1403
 msgid "Cannot allocate stock to a line without a part"
 msgstr ""
 
-#: order/models.py:1322
+#: order/models.py:1406
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr ""
 
-#: order/models.py:1326
+#: order/models.py:1410
 msgid "StockItem is over-allocated"
 msgstr ""
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1416 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr ""
 
-#: order/models.py:1335
+#: order/models.py:1419
 msgid "Sales order does not match shipment"
 msgstr ""
 
-#: order/models.py:1336
+#: order/models.py:1420
 msgid "Shipment does not match sales order"
 msgstr ""
 
-#: order/models.py:1344
+#: order/models.py:1428
 msgid "Line"
 msgstr ""
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr ""
 
-#: order/models.py:1353
+#: order/models.py:1437
 msgid "Sales order shipment reference"
 msgstr ""
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr ""
 
-#: order/models.py:1366
+#: order/models.py:1450
 msgid "Select stock item to allocate"
 msgstr ""
 
-#: order/models.py:1369
+#: order/models.py:1453
 msgid "Enter stock allocation quantity"
 msgstr ""
 
@@ -3662,7 +3642,7 @@ msgstr ""
 msgid "Purchase order must match supplier"
 msgstr ""
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr ""
 
@@ -3674,11 +3654,11 @@ msgstr ""
 msgid "Select destination location for received items"
 msgstr ""
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr ""
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr ""
 
@@ -3714,35 +3694,35 @@ msgstr ""
 msgid "Sale price currency"
 msgstr ""
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr ""
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr ""
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr ""
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr ""
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr ""
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr ""
 
@@ -3832,7 +3812,12 @@ msgstr ""
 msgid "Total cost"
 msgstr ""
 
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
 msgid "Edit Purchase Order"
 msgstr ""
 
@@ -3863,9 +3848,9 @@ msgstr ""
 #: part/templates/part/import_wizard/ajax_match_references.html:42
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3929,7 +3914,7 @@ msgstr ""
 msgid "Order Notes"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
 msgid "Add Order Line"
 msgstr ""
 
@@ -3947,12 +3932,12 @@ msgid "Print packing list"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
 msgid "Complete Sales Order"
 msgstr ""
 
@@ -3961,7 +3946,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2471
 msgid "Customer Reference"
 msgstr ""
 
@@ -3971,7 +3956,7 @@ msgstr ""
 msgid "Completed Shipments"
 msgstr ""
 
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
 msgid "Edit Sales Order"
 msgstr ""
 
@@ -3985,7 +3970,7 @@ msgid "Pending Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
 msgid "Actions"
 msgstr ""
 
@@ -4113,7 +4098,7 @@ msgid "Part Category"
 msgstr ""
 
 #: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
 #: users/models.py:38
 msgid "Part Categories"
 msgstr ""
@@ -4124,7 +4109,7 @@ msgstr ""
 #: part/templates/part/category_sidebar.html:9
 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
 #: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
 #: templates/navbar.html:24 users/models.py:39
 msgid "Parts"
 msgstr ""
@@ -4202,7 +4187,7 @@ msgstr ""
 
 #: part/models.py:842 part/templates/part/part_base.html:266
 #: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
 msgid "IPN"
 msgstr ""
 
@@ -4316,7 +4301,7 @@ msgid "Test with this name already exists for this part"
 msgstr ""
 
 #: part/models.py:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
 msgid "Test Name"
 msgstr ""
 
@@ -4448,7 +4433,7 @@ msgid "BOM quantity for this BOM item"
 msgstr ""
 
 #: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
 #: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
@@ -4482,7 +4467,7 @@ msgid "BOM line checksum"
 msgstr ""
 
 #: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
 #: templates/js/translated/table_filters.js:68
 #: templates/js/translated/table_filters.js:88
 msgid "Inherited"
@@ -4493,7 +4478,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
 #: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
 msgid "Allow Variants"
 msgstr ""
 
@@ -4714,6 +4699,11 @@ msgstr ""
 msgid "New Part"
 msgstr ""
 
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr ""
+
 #: part/templates/part/category.html:172
 msgid "Set category"
 msgstr ""
@@ -4902,46 +4892,46 @@ msgstr "Productieopdracht Toewijzingen"
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
 msgid "Part Manufacturers"
 msgstr "Onderdeelfabrikanten"
 
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
 msgid "Delete manufacturer parts"
 msgstr "Fabrikantonderdeel verwijderen"
 
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
 msgid "Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
 msgid "Add Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
@@ -5084,8 +5074,8 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
 #: templates/js/translated/model_renderers.js:192
 #: templates/js/translated/part.js:581 templates/js/translated/part.js:658
 msgid "Inactive"
@@ -5101,20 +5091,22 @@ msgstr ""
 msgid "This part is a variant of %(link)s"
 msgstr ""
 
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr ""
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr ""
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
 msgid "Can Build"
 msgstr ""
 
@@ -5133,7 +5125,7 @@ msgid "Latest Serial Number"
 msgstr ""
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr ""
 
@@ -5172,7 +5164,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -5291,7 +5283,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
 msgid "Supplier Cost"
 msgstr ""
 
@@ -5530,7 +5522,7 @@ msgstr "Streepjescode hash komt al overeen met Voorraadartikel"
 msgid "Barcode associated with Stock Item"
 msgstr "Streepjescode gekoppeld aan Voorraadartikel"
 
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
 msgid "Label printing failed"
 msgstr ""
 
@@ -5770,12 +5762,12 @@ msgid "Stock Item Test Report"
 msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr "Serienummer"
 
@@ -5796,7 +5788,7 @@ msgstr ""
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
 msgid "Date"
 msgstr ""
 
@@ -5815,7 +5807,7 @@ msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2589
 msgid "Serial"
 msgstr ""
 
@@ -5832,7 +5824,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr ""
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr ""
 
@@ -5894,7 +5886,7 @@ msgstr ""
 msgid "Packaging this stock item is stored in"
 msgstr ""
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr ""
 
@@ -5934,8 +5926,8 @@ msgstr ""
 msgid "Destination Sales Order"
 msgstr ""
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1816
 msgid "Expiry Date"
 msgstr ""
 
@@ -6215,11 +6207,11 @@ msgstr ""
 msgid "Installed Stock Items"
 msgstr ""
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
 msgid "Install Stock Item"
 msgstr ""
 
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
 msgid "Add Test Result"
 msgstr ""
 
@@ -6311,110 +6303,114 @@ msgstr ""
 msgid "Delete stock item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:244
-msgid "This stock item has not passed all required tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:252
-msgid "This stock item is allocated to Sales Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr "Geen locatie ingesteld"
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr "Geen fabrikant geselecteerd"
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr ""
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:284
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:292
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1693
+msgid "No location set"
+msgstr "Geen locatie ingesteld"
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1832
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr ""
 
@@ -6486,8 +6482,8 @@ msgstr "U staat niet in de lijst van eigenaars van deze locatie. Deze voorraadlo
 msgid "Sublocations"
 msgstr "Sublocaties"
 
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:198 users/models.py:40
 msgid "Stock Locations"
 msgstr "Voorraadlocaties"
 
@@ -6539,7 +6535,7 @@ msgstr ""
 msgid "Child Items"
 msgstr ""
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr ""
 
@@ -6564,55 +6560,55 @@ msgstr ""
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr ""
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr "QR-code voor Voorraadlocatie"
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr ""
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr "Specificeer een geldige locatie"
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr ""
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr ""
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr ""
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr ""
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr ""
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr "Verwijder Voorraadlocatie"
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr ""
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr ""
 
@@ -7331,9 +7327,9 @@ msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr ""
@@ -7602,14 +7598,14 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
 #: templates/js/translated/part.js:530
 #: templates/js/translated/table_filters.js:178
 msgid "Available"
@@ -7644,67 +7640,67 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
-#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
 msgid "No Response"
 msgstr ""
 
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
 msgid "No response from the InvenTree server"
 msgstr ""
 
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
 msgid "Error 400: Bad request"
 msgstr ""
 
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
 msgid "API request returned error code 400"
 msgstr ""
 
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
 msgid "Error 401: Not Authenticated"
 msgstr ""
 
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
 msgid "Authentication credentials not supplied"
 msgstr ""
 
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
 msgid "Error 403: Permission Denied"
 msgstr ""
 
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
 msgid "You do not have the required permissions to access this function"
 msgstr ""
 
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
 msgid "Error 404: Resource Not Found"
 msgstr ""
 
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
 msgid "The requested resource could not be located on the server"
 msgstr ""
 
-#: templates/js/translated/api.js:217
+#: templates/js/translated/api.js:262
 msgid "Error 405: Method Not Allowed"
 msgstr ""
 
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
 msgid "HTTP method not allowed at URL"
 msgstr ""
 
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
 msgid "Error 408: Timeout"
 msgstr ""
 
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
 msgid "Connection timeout while requesting data from server"
 msgstr ""
 
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
 msgid "Unhandled Error Code"
 msgstr ""
 
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
 msgid "Error code"
 msgstr ""
 
@@ -7765,7 +7761,7 @@ msgid "Unknown response from server"
 msgstr ""
 
 #: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "Invalid server response"
 msgstr ""
 
@@ -7847,12 +7843,12 @@ msgid "Download BOM Template"
 msgstr ""
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
 msgid "Format"
 msgstr ""
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr ""
 
@@ -7932,84 +7928,84 @@ msgstr ""
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
 msgid "Load BOM for subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
 msgid "No Stock Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
 msgid "Includes variant and substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
 #: templates/js/translated/part.js:690
 msgid "Includes variant stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
 msgid "Includes substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -8131,262 +8127,270 @@ msgstr ""
 msgid "Location not specified"
 msgstr "Locatie is niet opgegeven"
 
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
 msgid "No active build outputs found"
 msgstr "Geen actieve productieuitvoeren gevonden"
 
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
 msgid "Allocated Stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
 msgid "No tracked BOM items for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
 msgid "Completed Tests"
 msgstr ""
 
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
 msgid "No required tests for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
 msgid "Edit stock allocation"
 msgstr "Voorraadtoewijzing bewerken"
 
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
 msgid "Delete stock allocation"
 msgstr "Voorraadtoewijzing verwijderen"
 
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
 msgid "Edit Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
 msgid "Remove Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
 msgid "Substitute parts available"
 msgstr ""
 
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
 msgid "Quantity Per"
 msgstr ""
 
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
 msgid "Insufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
 msgid "Sufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
 msgid "Allocated"
 msgstr "Toegewezen"
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
 msgid "Build stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
 msgid "Order stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
 msgid "Allocate stock"
 msgstr "Voorraad toewijzen"
 
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr "Onderdelen selecteren"
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
 msgid "You must select at least one part to allocate"
 msgstr "Er moet op zijn minst één onderdeel toegewezen worden"
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
 msgid "All Parts Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
 msgid "All selected parts have been fully allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
 msgid "Select source location (leave blank to take from all locations)"
 msgstr "Selecteer bron locatie (laat het veld leeg om iedere locatie te gebruiken)"
 
-#: templates/js/translated/build.js:2117
+#: templates/js/translated/build.js:2100
 msgid "Allocate Stock Items to Build Order"
 msgstr ""
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
 msgid "No matching stock locations"
 msgstr ""
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
 msgid "No matching stock items"
 msgstr ""
 
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
 msgid "Automatic Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
 msgstr ""
 
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
 msgid "If a location is specifed, stock will only be allocated from that location"
 msgstr ""
 
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
 msgstr ""
 
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
 msgstr ""
 
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
 msgid "Allocate Stock Items"
 msgstr ""
 
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
 msgid "Select"
 msgstr ""
 
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
 msgid "Build order is overdue"
 msgstr ""
 
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
 msgid "Progress"
 msgstr ""
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
 msgid "No information"
 msgstr ""
 
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
 msgid "No parts allocated for"
 msgstr ""
 
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
 msgid "Add Manufacturer"
 msgstr "Fabrikant toevoegen"
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
 msgid "Add Manufacturer Part"
 msgstr "Fabrikantonderdeel toevoegen"
 
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
 msgid "Edit Manufacturer Part"
 msgstr "Fabrikantonderdeel bewerken"
 
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr "Fabrikantonderdeel verwijderen"
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:342
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
 msgid "Parts Manufactured"
 msgstr "Gefabriceerde Onderdelen"
 
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
-msgstr "De volgende fabrikantenonderdelen worden verwijderd"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
+msgstr ""
 
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
 msgid "Delete Manufacturer Parts"
 msgstr "Verwijder Fabrikantenonderdelen"
 
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr ""
+
+#: templates/js/translated/company.js:595
 msgid "No manufacturer parts found"
 msgstr "Geen fabrikantenonderdelen gevonden"
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
 #: templates/js/translated/part.js:650
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
 #: templates/js/translated/part.js:654
 msgid "Assembled part"
 msgstr "Samengesteld onderdeel"
 
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
 msgid "No supplier parts found"
 msgstr ""
 
@@ -8424,61 +8428,61 @@ msgstr ""
 msgid "Create filter"
 msgstr ""
 
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
 msgid "Action Prohibited"
 msgstr ""
 
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
 msgid "Create operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
 msgid "Update operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
 msgid "Delete operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
 msgid "View operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
 msgid "Keep this form open"
 msgstr ""
 
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
 msgid "Enter a valid number"
 msgstr ""
 
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
 #: templates/modals.html:43
 msgid "Form errors exist"
 msgstr ""
 
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
 msgid "No results found"
 msgstr ""
 
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
 msgid "Searching"
 msgstr ""
 
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
 msgid "Clear input"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "File Column"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "Field Name"
 msgstr ""
 
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
 msgid "Select Columns"
 msgstr ""
 
@@ -8552,62 +8556,62 @@ msgstr ""
 msgid "Select Label Template"
 msgstr ""
 
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
 msgid "Cancel"
 msgstr ""
 
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
 #: templates/modals.html:28 templates/modals.html:51
 msgid "Submit"
 msgstr ""
 
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
 msgid "Form Title"
 msgstr ""
 
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
 msgid "Waiting for server..."
 msgstr ""
 
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
 msgid "Show Error Information"
 msgstr ""
 
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
 msgid "Accept"
 msgstr ""
 
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
 msgid "Loading Data"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Invalid response from server"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Form data missing from server response"
 msgstr ""
 
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
 msgid "Error posting form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "JSON response missing form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
 msgid "Error 400: Bad Request"
 msgstr ""
 
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
 msgid "Server returned error code 400"
 msgstr ""
 
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
 msgid "Error requesting form data"
 msgstr ""
 
@@ -8665,377 +8669,381 @@ msgstr ""
 msgid "Notifications will load here"
 msgstr ""
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
 msgstr ""
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
 msgstr ""
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr ""
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr ""
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr ""
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr ""
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr ""
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr ""
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr ""
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr ""
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr ""
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr ""
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr ""
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
 msgid "Stock Status"
 msgstr ""
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr ""
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr ""
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr ""
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
 msgid "Order is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
 msgid "Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
 msgid "Duplicate Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
 msgid "Edit Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
 msgid "Delete Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1856
 msgid "No line items found"
 msgstr ""
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
 msgid "Total"
 msgstr ""
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
 msgid "Total Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
 msgid "Duplicate line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
 msgid "Edit line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
 msgid "Delete line item"
 msgstr ""
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
 msgid "Duplicate line"
 msgstr ""
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
 msgid "Edit line"
 msgstr ""
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
 msgid "Delete line"
 msgstr ""
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
 msgid "Duplicate Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
 msgid "Edit Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
 msgid "Delete Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2279
 msgid "No matching line"
 msgstr ""
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2392
 msgid "No sales orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2462
 msgid "Invalid Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2549
 msgid "Edit shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2552
 msgid "Complete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2557
 msgid "Delete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2577
 msgid "Edit Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2594
 msgid "Delete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2628
 msgid "No matching shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2638
 msgid "Shipment Reference"
 msgstr ""
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2662
 msgid "Not shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2668
 msgid "Tracking"
 msgstr ""
 
-#: templates/js/translated/order.js:2603
+#: templates/js/translated/order.js:2672
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:2841
 msgid "Add Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2892
 msgid "Confirm stock allocation"
 msgstr "Bevestig de voorraadtoewijzing"
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2893
 msgid "Allocate Stock Items to Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:3101
 msgid "No sales order allocations found"
 msgstr ""
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:3182
 msgid "Edit Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:3199
 msgid "Confirm Delete Operation"
 msgstr ""
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:3200
 msgid "Delete Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
 msgid "Shipped to customer"
 msgstr ""
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
 msgid "Stock location not specified"
 msgstr ""
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3623
 msgid "Allocate serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3629
 msgid "Purchase stock"
 msgstr ""
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
 msgid "Calculate price"
 msgstr ""
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3648
 msgid "Cannot be deleted as items have been shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3651
 msgid "Cannot be deleted as items have been allocated"
 msgstr ""
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3733
 msgid "Allocate Serial Numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3842
 msgid "Update Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3856
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:4092
 msgid "No matching lines"
 msgstr ""
 
@@ -9217,7 +9225,7 @@ msgid "No category"
 msgstr ""
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2238
 msgid "Display as list"
 msgstr ""
 
@@ -9225,7 +9233,7 @@ msgstr ""
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
 msgid "Display as tree"
 msgstr ""
 
@@ -9233,7 +9241,7 @@ msgstr ""
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
 msgid "Path"
 msgstr ""
 
@@ -9241,12 +9249,12 @@ msgstr ""
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
 msgid "Delete test result"
 msgstr ""
 
@@ -9367,11 +9375,11 @@ msgstr ""
 msgid "Sales Order(s) must be selected before printing report"
 msgstr ""
 
-#: templates/js/translated/search.js:307
+#: templates/js/translated/search.js:352
 msgid "Minimize results"
 msgstr ""
 
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:355
 msgid "Remove results"
 msgstr ""
 
@@ -9531,204 +9539,204 @@ msgstr ""
 msgid "Confirm stock adjustment"
 msgstr ""
 
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
 msgid "PASS"
 msgstr ""
 
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
 msgid "FAIL"
 msgstr ""
 
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
 msgid "NO RESULT"
 msgstr ""
 
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
 msgid "Pass test"
 msgstr ""
 
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
 msgid "Add test result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
 msgid "No test results found"
 msgstr ""
 
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
 msgid "Test Date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
 msgid "Edit Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
 msgid "Delete Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
 msgid "In production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
 msgid "Installed in Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
 msgid "Assigned to Sales Order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
 msgid "No stock location set"
 msgstr "Geen voorraadlocatie ingesteld"
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1712
 msgid "Stock item is in production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1717
 msgid "Stock item assigned to sales order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1720
 msgid "Stock item assigned to customer"
 msgstr ""
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr ""
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr ""
-
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
 msgid "Serialized stock item has been allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
 msgid "Stock item has been fully allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
 msgid "Stock item has been partially allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1730
 msgid "Stock item has been installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1734
+msgid "Stock item has expired"
+msgstr ""
+
+#: templates/js/translated/stock.js:1736
+msgid "Stock item will expire soon"
+msgstr ""
+
+#: templates/js/translated/stock.js:1743
 msgid "Stock item has been rejected"
 msgstr ""
 
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1745
 msgid "Stock item is lost"
 msgstr ""
 
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1747
 msgid "Stock item is destroyed"
 msgstr ""
 
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1751
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr ""
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1802
 msgid "Stocktake"
 msgstr ""
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1884
 msgid "Supplier part not specified"
 msgstr ""
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1922
 msgid "No stock items matching query"
 msgstr ""
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2095
 msgid "Set Stock Status"
 msgstr ""
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2109
 msgid "Select Status Code"
 msgstr ""
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2110
 msgid "Status code must be selected"
 msgstr ""
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2365
 msgid "Details"
 msgstr ""
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2381
 msgid "Part information unavailable"
 msgstr ""
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2403
 msgid "Location no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2422
 msgid "Purchase order no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
 msgid "Customer no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2459
 msgid "Stock item no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2482
 msgid "Added"
 msgstr ""
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2490
 msgid "Removed"
 msgstr ""
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2566
 msgid "No installed items"
 msgstr ""
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
 msgid "Uninstall Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2666
 msgid "Select stock item to uninstall"
 msgstr ""
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2687
 msgid "Install another stock item into this item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2688
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr ""
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2690
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2691
 msgid "The Stock Item is currently available in stock"
 msgstr ""
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2692
 msgid "The Stock Item is not already installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2693
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr ""
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2706
 msgid "Select part to install"
 msgstr ""
 
@@ -9960,69 +9968,81 @@ msgstr ""
 msgid "Purchasable"
 msgstr ""
 
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr "Toon Kalenderweergave"
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr "Toon Lijstweergave"
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
 msgid "Export Table Data"
 msgstr ""
 
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
 msgid "Select File Format"
 msgstr ""
 
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
 msgid "Loading data"
 msgstr ""
 
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
 msgid "rows per page"
 msgstr ""
 
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
 msgid "Showing all rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "Showing"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "to"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "of"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
 #: templates/search.html:8 templates/search_form.html:6
 #: templates/search_form.html:7
 msgid "Search"
 msgstr ""
 
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
 msgid "No matching results"
 msgstr ""
 
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
 msgid "Hide/Show pagination"
 msgstr ""
 
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
 msgid "Refresh"
 msgstr ""
 
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
 msgid "Toggle"
 msgstr ""
 
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
 msgid "Columns"
 msgstr ""
 
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
 msgid "All"
 msgstr ""
 
diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po
index d0ce2d126d..70078af158 100644
--- a/InvenTree/locale/no/LC_MESSAGES/django.po
+++ b/InvenTree/locale/no/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
-"PO-Revision-Date: 2022-05-24 01:42\n"
+"POT-Creation-Date: 2022-05-28 23:41+0000\n"
+"PO-Revision-Date: 2022-05-29 01:47\n"
 "Last-Translator: \n"
 "Language-Team: Norwegian\n"
 "Language: no_NO\n"
@@ -21,7 +21,7 @@ msgstr ""
 msgid "API endpoint not found"
 msgstr "API endepunkt ikke funnet"
 
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
 msgid "Error details can be found in the admin panel"
 msgstr ""
 
@@ -30,7 +30,7 @@ msgid "Enter date"
 msgstr "Oppgi dato"
 
 #: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
 msgid "Confirm"
 msgstr "Bekreft"
 
@@ -79,7 +79,7 @@ msgstr "Du må angi samme e-post hver gang."
 msgid "Duplicate serial: {sn}"
 msgstr "Dupliser serie: {sn}"
 
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
 msgid "Invalid quantity provided"
 msgstr "Ugyldig mengde oppgitt"
 
@@ -134,10 +134,12 @@ msgid "Select file to attach"
 msgstr "Velg fil å legge ved"
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:139 order/models.py:1273
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr "Lenke"
 
@@ -159,7 +161,7 @@ msgstr "Kommentar til fil"
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2513
 msgid "User"
 msgstr "Bruker"
 
@@ -205,9 +207,10 @@ msgstr "Ugyldig valg"
 #: templates/InvenTree/settings/plugin.html:132
 #: templates/InvenTree/settings/plugin_settings.html:23
 #: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2283
 msgid "Name"
 msgstr "Navn"
 
@@ -216,22 +219,22 @@ msgstr "Navn"
 #: company/models.py:575 company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
 #: part/templates/part/part_base.html:167
 #: part/templates/part/set_category.html:14 report/models.py:182
 #: report/models.py:547 report/models.py:586
 #: report/templates/report/inventree_build_order_base.html:118
 #: stock/templates/stock/location.html:103
 #: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
 msgid "Description"
 msgstr "Beskrivelse"
 
@@ -406,7 +409,7 @@ msgid "InvenTree system health checks failed"
 msgstr "Helsekontroll av IvenTree system mislyktes"
 
 #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
 msgid "Pending"
 msgstr "Ventende"
 
@@ -414,141 +417,145 @@ msgstr "Ventende"
 msgid "Placed"
 msgstr "Plassert"
 
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
 #: order/templates/order/order_base.html:134
 #: order/templates/order/sales_order_base.html:133
 msgid "Complete"
 msgstr "Fullført"
 
 #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
 msgid "Cancelled"
 msgstr "Kansellert"
 
 #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
 msgid "Lost"
 msgstr "Tapt"
 
 #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
 msgid "Returned"
 msgstr "Returnert"
 
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
 msgid "Shipped"
 msgstr "Sendt"
 
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
 msgid "OK"
 msgstr ""
 
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
 msgid "Attention needed"
 msgstr "Merknad nødvendig"
 
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
 msgid "Damaged"
 msgstr "Skadet"
 
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
 msgid "Destroyed"
 msgstr "Ødelagt"
 
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
 msgid "Rejected"
 msgstr "Avvist"
 
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
 msgid "Legacy stock tracking entry"
 msgstr "Legacy stock sporingsoppføring"
 
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
 msgid "Stock item created"
 msgstr "Lagevare opprettet"
 
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
 msgid "Edited stock item"
 msgstr "Redigerte lagervare"
 
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
 msgid "Assigned serial number"
 msgstr "Tildelt serienummer"
 
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
 msgid "Stock counted"
 msgstr "Lager tellet"
 
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
 msgid "Stock manually added"
 msgstr "Lager manuelt lagt til"
 
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
 msgid "Stock manually removed"
 msgstr "Lager manuelt fjernet"
 
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
 msgid "Location changed"
 msgstr "Posisjon endret"
 
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
 msgid "Installed into assembly"
 msgstr "Installert i montering"
 
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
 msgid "Removed from assembly"
 msgstr "Fjernet fra montering"
 
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
 msgid "Installed component item"
 msgstr "Installert komponentelement"
 
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
 msgid "Removed component item"
 msgstr "Fjernet komponentelement"
 
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
 msgid "Split from parent item"
 msgstr "Delt fra overordnet element"
 
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
 msgid "Split child item"
 msgstr "Delt fra underelement"
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
 msgid "Merged stock items"
 msgstr "Sammenslått lagervare"
 
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
 msgid "Converted to variant"
 msgstr "Konvertert til variant"
 
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
 msgid "Sent to customer"
 msgstr "Sendt til kunde"
 
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
 msgid "Returned from customer"
 msgstr "Returnert av kunde"
 
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
 msgid "Build order output created"
 msgstr "Build ordreutgang opprettet"
 
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
 msgid "Build order output completed"
 msgstr "Build ordreutg fullført"
 
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
 msgid "Consumed by build order"
 msgstr ""
 
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
 msgid "Received against purchase order"
 msgstr "Mottatt mot innkjøpsordre"
 
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
 msgid "Production"
 msgstr "Produksjon"
 
@@ -637,15 +644,15 @@ msgstr "Build Ordre"
 msgid "Build Order Reference"
 msgstr "Bygg ordrereferanse"
 
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
 #: part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
 msgid "Reference"
 msgstr "Referanse"
 
@@ -664,7 +671,7 @@ msgstr "Build order som denne build er tildelt til"
 
 #: build/models.py:225 build/templates/build/build_base.html:77
 #: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
 #: part/models.py:2303 part/models.py:2319 part/models.py:2338
 #: part/models.py:2355 part/models.py:2457 part/models.py:2579
 #: part/models.py:2669 part/models.py:2760 part/models.py:3050
@@ -679,19 +686,21 @@ msgstr "Build order som denne build er tildelt til"
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
 #: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
 msgid "Part"
 msgstr "Del"
 
@@ -708,7 +717,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr "Salgorder som denne build er tildelt til"
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
 msgid "Source Location"
 msgstr "Kilde plassering"
 
@@ -749,7 +758,7 @@ msgid "Build status code"
 msgstr "Byggstatuskode"
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr "Batch kode"
 
@@ -757,12 +766,12 @@ msgstr "Batch kode"
 msgid "Batch code for this build output"
 msgstr "Batch kode for denne build output"
 
-#: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
 msgid "Creation Date"
 msgstr "Opprettelsesdato"
 
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
 msgid "Target completion date"
 msgstr "Forventet sluttdato"
 
@@ -770,8 +779,8 @@ msgstr "Forventet sluttdato"
 msgid "Target date for build completion. Build will be overdue after this date."
 msgstr "Forventet dato for ferdigstillelse. Build er forvalt etter denne datoen."
 
-#: build/models.py:300 order/models.py:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
 msgid "Completion Date"
 msgstr "Fullført dato"
 
@@ -779,7 +788,7 @@ msgstr "Fullført dato"
 msgid "completed by"
 msgstr "fullført av"
 
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
 msgid "Issued by"
 msgstr "Utstedt av"
 
@@ -788,11 +797,11 @@ msgid "User who issued this build order"
 msgstr "Brukeren som utstede denne prosjekt order"
 
 #: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
 msgid "Responsible"
 msgstr "Ansvarlig"
 
@@ -804,14 +813,14 @@ msgstr "Bruker ansvarlig for denne prosjekt order"
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr "Ekstern link"
 
 #: build/models.py:334 build/serializers.py:390
 #: build/templates/build/sidebar.html:21 company/models.py:134
 #: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
 #: order/templates/order/po_sidebar.html:11
 #: order/templates/order/so_sidebar.html:17 part/models.py:983
 #: part/templates/part/part_sidebar.html:59
@@ -820,11 +829,11 @@ msgstr "Ekstern link"
 #: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
 msgid "Notes"
 msgstr "Notater"
 
@@ -857,7 +866,7 @@ msgstr ""
 msgid "Stock item is over-allocated"
 msgstr "Lagervare er overtildelt"
 
-#: build/models.py:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1413
 msgid "Allocation quantity must be greater than zero"
 msgstr "Tildeling antallet må være større enn null"
 
@@ -869,8 +878,8 @@ msgstr "Mengden må væew 1 for serialisert lagervare"
 msgid "Selected stock item not found in BOM"
 msgstr "Valgt lagevare ikke funnet i BOM"
 
-#: build/models.py:1375 stock/templates/stock/item_base.html:335
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
 #: templates/navbar.html:38
 msgid "Build"
 msgstr "Prosjekt"
@@ -879,18 +888,18 @@ msgstr "Prosjekt"
 msgid "Build to allocate parts"
 msgstr "Bygge for å tildele deler"
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2449
 msgid "Stock Item"
 msgstr "Lagervare"
 
@@ -902,10 +911,10 @@ msgstr "Kilde lagervare"
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_build_order_base.html:114
@@ -913,25 +922,24 @@ msgstr "Kilde lagervare"
 #: 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
 msgid "Quantity"
 msgstr "Antall"
 
@@ -948,7 +956,7 @@ msgid "Destination stock item"
 msgstr "Målets lagervare"
 
 #: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
 msgid "Build Output"
 msgstr ""
 
@@ -972,7 +980,7 @@ msgstr ""
 msgid "Enter quantity for build output"
 msgstr "Angi antall for build utgang"
 
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
 #: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
 #: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
 #: stock/serializers.py:294
@@ -987,8 +995,8 @@ msgstr ""
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr ""
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr "Serienummer"
@@ -1015,15 +1023,15 @@ msgstr ""
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
 msgid "Location"
 msgstr "Beliggenhet"
 
@@ -1032,12 +1040,12 @@ msgid "Location for completed build outputs"
 msgstr ""
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: build/templates/build/detail.html:62 order/models.py:663
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
 msgid "Status"
 msgstr ""
 
@@ -1118,7 +1126,7 @@ msgstr ""
 msgid "Item must be in stock"
 msgstr "Varen må være på lager"
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr "Tilgjengelig mengde ({q}) overskredet"
@@ -1135,7 +1143,7 @@ msgstr ""
 msgid "This stock item has already been allocated to this build output"
 msgstr ""
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr ""
 
@@ -1233,13 +1241,13 @@ msgid "Stock has not been fully allocated to this Build Order"
 msgstr ""
 
 #: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr "Måldato"
 
@@ -1266,14 +1274,14 @@ msgid "Completed"
 msgstr "Fullført"
 
 #: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2436
 msgid "Sales Order"
 msgstr "Salgsorder"
 
@@ -1308,8 +1316,8 @@ msgstr "Lager kilde"
 msgid "Stock can be taken from any available location."
 msgstr "Lagervare kan hentes fra alle tilgengelige steder."
 
-#: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
 msgid "Destination"
 msgstr "Destinasjon"
 
@@ -1322,11 +1330,11 @@ msgid "Allocated Parts"
 msgstr "Tildelte deler"
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
-#: templates/js/translated/build.js:1184
+#: stock/templates/stock/item_base.html:170
+#: templates/js/translated/build.js:1179
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1335,7 +1343,7 @@ msgstr ""
 #: build/templates/build/detail.html:126
 #: order/templates/order/order_base.html:149
 #: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
 msgid "Created"
 msgstr "Opprettet"
 
@@ -1355,7 +1363,7 @@ msgstr ""
 msgid "Allocate Stock to Build"
 msgstr ""
 
-#: build/templates/build/detail.html:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
 msgid "Unallocate stock"
 msgstr "Fjern lager allokering"
 
@@ -1385,8 +1393,8 @@ msgstr "Bestill nødvendige deler"
 
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: company/templates/company/detail.html:85
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr "Bestill deler"
 
@@ -1461,8 +1469,8 @@ msgid "Completed Build Outputs"
 msgstr ""
 
 #: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
 #: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:82
 #: order/templates/order/sales_order_detail.html:129
@@ -1476,11 +1484,11 @@ msgstr "Vedlegg"
 msgid "Build Notes"
 msgstr ""
 
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
 msgid "Allocation Complete"
 msgstr "Tildeling fullført"
 
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
 msgid "All untracked stock items have been allocated"
 msgstr "Alle usporbar lagervarer har tildelt"
 
@@ -1492,18 +1500,6 @@ msgstr ""
 msgid "Print Build Orders"
 msgstr ""
 
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr "Vis kalender"
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr "Vis liste"
-
 #: build/templates/build/sidebar.html:5
 msgid "Build Order Details"
 msgstr ""
@@ -1727,7 +1723,7 @@ msgstr "Mal"
 msgid "Parts are templates by default"
 msgstr "Deler er maler som standard"
 
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
 #: templates/js/translated/table_filters.js:168
 #: templates/js/translated/table_filters.js:460
 msgid "Assembly"
@@ -2413,7 +2409,7 @@ msgid "Price break quantity"
 msgstr ""
 
 #: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: company/templates/company/supplier_part.html:263 order/models.py:975
 #: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
 msgid "Price"
 msgstr ""
@@ -2556,7 +2552,7 @@ msgstr "Beskrivelse av firmaet"
 
 #: company/models.py:104 company/templates/company/company_base.html:100
 #: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
 msgid "Website"
 msgstr "Nettside"
 
@@ -2651,10 +2647,11 @@ msgstr ""
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: stock/templates/stock/item_base.html:212
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
 #: templates/js/translated/table_filters.js:411
 msgid "Manufacturer"
 msgstr ""
@@ -2665,8 +2662,10 @@ msgstr ""
 
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr ""
@@ -2686,7 +2685,7 @@ msgstr ""
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr ""
 
@@ -2696,8 +2695,9 @@ msgstr ""
 
 #: company/models.py:427
 #: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
 msgid "Value"
 msgstr ""
 
@@ -2708,7 +2708,7 @@ msgstr ""
 #: company/models.py:434 part/models.py:940 part/models.py:2549
 #: part/templates/part/part_base.html:280
 #: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
 msgid "Units"
 msgstr ""
 
@@ -2721,11 +2721,12 @@ msgid "Linked manufacturer part must reference the same base part"
 msgstr ""
 
 #: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: stock/templates/stock/item_base.html:229
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2736,8 +2737,9 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
 msgid "SKU"
 msgstr ""
 
@@ -2773,8 +2775,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr ""
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
 msgid "Packaging"
 msgstr ""
 
@@ -2804,12 +2806,12 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
 msgid "Company"
 msgstr ""
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr ""
 
@@ -2822,7 +2824,7 @@ msgid "Edit company information"
 msgstr ""
 
 #: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
 msgid "Edit Company"
 msgstr ""
 
@@ -2845,12 +2847,12 @@ msgstr ""
 msgid "Download image from URL"
 msgstr "Last ned bilde fra URL"
 
-#: company/templates/company/company_base.html:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr "Kunde"
@@ -2869,7 +2871,7 @@ msgid "Upload Image"
 msgstr "Last opp bilde"
 
 #: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
+#: company/templates/company/manufacturer_part_sidebar.html:7
 #: templates/InvenTree/search.html:118
 msgid "Supplier Parts"
 msgstr "Leverandør deler"
@@ -2884,28 +2886,19 @@ msgstr "Oprett ny leverandørdel"
 msgid "New Supplier Part"
 msgstr "Ny leverandørdel"
 
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr "Valgmuligheter"
-
 #: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
 #: part/templates/part/category.html:176
 msgid "Order parts"
 msgstr "Bestill deler"
 
 #: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
 msgid "Delete parts"
 msgstr "Slett deler"
 
 #: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
 msgid "Delete Parts"
 msgstr "Slett deler"
 
@@ -2917,88 +2910,76 @@ msgstr "Produsentdeler"
 msgid "Create new manufacturer part"
 msgstr "Opprett ny produsentdeler"
 
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
 msgid "New Manufacturer Part"
 msgstr "Ny produsentdel"
 
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
 msgid "Supplier Stock"
 msgstr "Leverandør lager"
 
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
 #: company/templates/company/sidebar.html:12
 #: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
 #: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:235 templates/navbar.html:50
 #: users/models.py:43
 msgid "Purchase Orders"
 msgstr "Bestillingsorder"
 
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
 #: order/templates/order/purchase_orders.html:17
 msgid "Create new purchase order"
 msgstr "Opprett ny bestillingsorder"
 
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr "Ny bestillingsorder"
 
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
 #: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
 #: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
 #: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:259 templates/navbar.html:61
 #: users/models.py:44
 msgid "Sales Orders"
 msgstr "Salgsordre"
 
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
 #: order/templates/order/sales_orders.html:20
 msgid "Create new sales order"
 msgstr "Opprett ny salgsordre"
 
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
 #: order/templates/order/sales_orders.html:21
 msgid "New Sales Order"
 msgstr "Ny salgsorder"
 
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
 msgid "Assigned Stock"
 msgstr "Tildelt lagervare"
 
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
 msgid "Company Notes"
 msgstr "Notater til firma"
 
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr "Slett leverandørdeler?"
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr "Alle valgte leverandørdeler vil slettes"
-
 #: company/templates/company/index.html:8
 msgid "Supplier List"
 msgstr "Leverandørliste"
 
 #: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
 #: templates/navbar.html:49
 msgid "Manufacturers"
 msgstr "Produsenter"
@@ -3011,12 +2992,12 @@ msgid "Order part"
 msgstr "Bestill del"
 
 #: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
 msgid "Edit manufacturer part"
 msgstr "Endre produsent del"
 
 #: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
 msgid "Delete manufacturer part"
 msgstr "Slett produsentdel"
 
@@ -3032,55 +3013,46 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:119
 #: company/templates/company/supplier_part.html:15 company/views.py:41
 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
 msgid "Suppliers"
 msgstr "Leverandører"
 
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
 #: part/templates/part/detail.html:363
 msgid "Delete supplier parts"
 msgstr "Slett leverandørdeler"
 
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
 msgid "Delete"
 msgstr "Slett"
 
-#: company/templates/company/manufacturer_part.html:164
+#: company/templates/company/manufacturer_part.html:166
 #: company/templates/company/manufacturer_part_sidebar.html:5
 #: part/templates/part/category_sidebar.html:19
 #: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8
 msgid "Parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
 #: part/templates/part/detail.html:184
 #: templates/InvenTree/settings/category.html:12
 #: templates/InvenTree/settings/part.html:66
 msgid "New Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
 msgid "Delete parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
 msgid "Add Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr ""
-
 #: company/templates/company/sidebar.html:6
 msgid "Manufactured Parts"
 msgstr "Produserte deler"
@@ -3099,19 +3071,19 @@ msgstr "Tildelt lagervarer"
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
 msgid "Delete supplier part"
 msgstr ""
 
@@ -3186,11 +3158,11 @@ msgstr ""
 #: part/templates/part/part_sidebar.html:14
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
 #: templates/InvenTree/settings/sidebar.html:43
 #: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
 #: templates/navbar.html:31
 msgid "Stock"
 msgstr ""
@@ -3216,8 +3188,8 @@ msgstr ""
 #: stock/templates/stock/location.html:161
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
+#: templates/js/translated/stock.js:2307 users/models.py:41
 msgid "Stock Items"
 msgstr ""
 
@@ -3229,7 +3201,7 @@ msgstr ""
 msgid "New Manufacturer"
 msgstr ""
 
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
 #: templates/navbar.html:60
 msgid "Customers"
 msgstr ""
@@ -3238,7 +3210,7 @@ msgstr ""
 msgid "New Customer"
 msgstr ""
 
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:212
 msgid "Companies"
 msgstr ""
 
@@ -3328,305 +3300,313 @@ msgstr ""
 msgid "Part query filters (comma-separated value of key=value pairs)"
 msgstr ""
 
-#: order/models.py:130
+#: order/models.py:137
 msgid "Order description"
 msgstr ""
 
-#: order/models.py:132
+#: order/models.py:139 order/models.py:1274
 msgid "Link to external page"
 msgstr ""
 
-#: order/models.py:140
+#: order/models.py:147
 msgid "Created By"
 msgstr ""
 
-#: order/models.py:147
+#: order/models.py:154
 msgid "User or group responsible for this order"
 msgstr ""
 
-#: order/models.py:152
+#: order/models.py:159
 msgid "Order notes"
 msgstr ""
 
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
 msgid "Order reference"
 msgstr ""
 
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
 msgid "Purchase order status"
 msgstr ""
 
-#: order/models.py:253
+#: order/models.py:311
 msgid "Company from which the items are being ordered"
 msgstr ""
 
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
 msgid "Supplier Reference"
 msgstr ""
 
-#: order/models.py:256
+#: order/models.py:314
 msgid "Supplier order reference code"
 msgstr ""
 
-#: order/models.py:263
+#: order/models.py:321
 msgid "received by"
 msgstr ""
 
-#: order/models.py:268
+#: order/models.py:326
 msgid "Issue Date"
 msgstr ""
 
-#: order/models.py:269
+#: order/models.py:327
 msgid "Date order was issued"
 msgstr ""
 
-#: order/models.py:274
+#: order/models.py:332
 msgid "Target Delivery Date"
 msgstr ""
 
-#: order/models.py:275
+#: order/models.py:333
 msgid "Expected date for order delivery. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:281
+#: order/models.py:339
 msgid "Date order was completed"
 msgstr ""
 
-#: order/models.py:310
+#: order/models.py:368
 msgid "Part supplier must match PO supplier"
 msgstr ""
 
-#: order/models.py:456
+#: order/models.py:514
 msgid "Quantity must be a positive number"
 msgstr ""
 
-#: order/models.py:601
+#: order/models.py:659
 msgid "Company to which the items are being sold"
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer Reference "
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer order reference code"
 msgstr ""
 
-#: order/models.py:612
+#: order/models.py:670
 msgid "Target date for order completion. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
 msgid "Shipment Date"
 msgstr ""
 
-#: order/models.py:622
+#: order/models.py:680
 msgid "shipped by"
 msgstr ""
 
-#: order/models.py:688
+#: order/models.py:746
 msgid "Order cannot be completed as no parts have been assigned"
 msgstr ""
 
-#: order/models.py:692
+#: order/models.py:750
 msgid "Only a pending order can be marked as complete"
 msgstr ""
 
-#: order/models.py:695
+#: order/models.py:753
 msgid "Order cannot be completed as there are incomplete shipments"
 msgstr ""
 
-#: order/models.py:698
+#: order/models.py:756
 msgid "Order cannot be completed as there are incomplete line items"
 msgstr ""
 
-#: order/models.py:878
+#: order/models.py:936
 msgid "Item quantity"
 msgstr ""
 
-#: order/models.py:884
+#: order/models.py:942
 msgid "Line item reference"
 msgstr ""
 
-#: order/models.py:886
+#: order/models.py:944
 msgid "Line item notes"
 msgstr ""
 
-#: order/models.py:891
+#: order/models.py:949
 msgid "Target shipping date for this line item"
 msgstr ""
 
-#: order/models.py:909
+#: order/models.py:967
 msgid "Context"
 msgstr ""
 
-#: order/models.py:910
+#: order/models.py:968
 msgid "Additional context for this line"
 msgstr ""
 
-#: order/models.py:918
+#: order/models.py:976
 msgid "Unit price"
 msgstr ""
 
-#: order/models.py:951
+#: order/models.py:1009
 msgid "Supplier part must match supplier"
 msgstr ""
 
-#: order/models.py:958
+#: order/models.py:1016
 msgid "deleted"
 msgstr ""
 
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
 msgid "Order"
 msgstr ""
 
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
 msgid "Purchase Order"
 msgstr ""
 
-#: order/models.py:984
+#: order/models.py:1042
 msgid "Supplier part"
 msgstr ""
 
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
 msgstr ""
 
-#: order/models.py:992
+#: order/models.py:1050
 msgid "Number of items received"
 msgstr ""
 
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1900
 msgid "Purchase Price"
 msgstr ""
 
-#: order/models.py:1000
+#: order/models.py:1058
 msgid "Unit purchase price"
 msgstr ""
 
-#: order/models.py:1008
+#: order/models.py:1066
 msgid "Where does the Purchaser want this item to be stored?"
 msgstr ""
 
-#: order/models.py:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
 #: part/templates/part/prices.html:119 part/templates/part/prices.html:288
 msgid "Sale Price"
 msgstr ""
 
-#: order/models.py:1079
+#: order/models.py:1137
 msgid "Unit sale price"
 msgstr ""
 
-#: order/models.py:1084
+#: order/models.py:1142
 msgid "Shipped quantity"
 msgstr ""
 
-#: order/models.py:1171
+#: order/models.py:1229
 msgid "Date of shipment"
 msgstr ""
 
-#: order/models.py:1178
+#: order/models.py:1236
 msgid "Checked By"
 msgstr ""
 
-#: order/models.py:1179
+#: order/models.py:1237
 msgid "User who checked this shipment"
 msgstr ""
 
-#: order/models.py:1187
+#: order/models.py:1245
 msgid "Shipment number"
 msgstr ""
 
-#: order/models.py:1194
+#: order/models.py:1252
 msgid "Shipment notes"
 msgstr ""
 
-#: order/models.py:1201
+#: order/models.py:1259
 msgid "Tracking Number"
 msgstr ""
 
-#: order/models.py:1202
+#: order/models.py:1260
 msgid "Shipment tracking information"
 msgstr ""
 
-#: order/models.py:1213
+#: order/models.py:1267
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1268
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1285
 msgid "Shipment has already been sent"
 msgstr ""
 
-#: order/models.py:1216
+#: order/models.py:1288
 msgid "Shipment has no allocated stock items"
 msgstr ""
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1395 order/models.py:1397
 msgid "Stock item has not been assigned"
 msgstr ""
 
-#: order/models.py:1317
+#: order/models.py:1401
 msgid "Cannot allocate stock item to a line with a different part"
 msgstr ""
 
-#: order/models.py:1319
+#: order/models.py:1403
 msgid "Cannot allocate stock to a line without a part"
 msgstr ""
 
-#: order/models.py:1322
+#: order/models.py:1406
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr ""
 
-#: order/models.py:1326
+#: order/models.py:1410
 msgid "StockItem is over-allocated"
 msgstr ""
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1416 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr ""
 
-#: order/models.py:1335
+#: order/models.py:1419
 msgid "Sales order does not match shipment"
 msgstr ""
 
-#: order/models.py:1336
+#: order/models.py:1420
 msgid "Shipment does not match sales order"
 msgstr ""
 
-#: order/models.py:1344
+#: order/models.py:1428
 msgid "Line"
 msgstr ""
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr ""
 
-#: order/models.py:1353
+#: order/models.py:1437
 msgid "Sales order shipment reference"
 msgstr ""
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr ""
 
-#: order/models.py:1366
+#: order/models.py:1450
 msgid "Select stock item to allocate"
 msgstr ""
 
-#: order/models.py:1369
+#: order/models.py:1453
 msgid "Enter stock allocation quantity"
 msgstr ""
 
@@ -3662,7 +3642,7 @@ msgstr ""
 msgid "Purchase order must match supplier"
 msgstr ""
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr ""
 
@@ -3674,11 +3654,11 @@ msgstr ""
 msgid "Select destination location for received items"
 msgstr ""
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr ""
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr ""
 
@@ -3714,35 +3694,35 @@ msgstr ""
 msgid "Sale price currency"
 msgstr ""
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr ""
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr ""
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr ""
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr ""
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr ""
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr ""
 
@@ -3832,7 +3812,12 @@ msgstr ""
 msgid "Total cost"
 msgstr ""
 
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
 msgid "Edit Purchase Order"
 msgstr ""
 
@@ -3863,9 +3848,9 @@ msgstr ""
 #: part/templates/part/import_wizard/ajax_match_references.html:42
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3929,7 +3914,7 @@ msgstr ""
 msgid "Order Notes"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
 msgid "Add Order Line"
 msgstr ""
 
@@ -3947,12 +3932,12 @@ msgid "Print packing list"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
 msgid "Complete Sales Order"
 msgstr ""
 
@@ -3961,7 +3946,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2471
 msgid "Customer Reference"
 msgstr ""
 
@@ -3971,7 +3956,7 @@ msgstr ""
 msgid "Completed Shipments"
 msgstr ""
 
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
 msgid "Edit Sales Order"
 msgstr ""
 
@@ -3985,7 +3970,7 @@ msgid "Pending Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
 msgid "Actions"
 msgstr ""
 
@@ -4113,7 +4098,7 @@ msgid "Part Category"
 msgstr ""
 
 #: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
 #: users/models.py:38
 msgid "Part Categories"
 msgstr ""
@@ -4124,7 +4109,7 @@ msgstr ""
 #: part/templates/part/category_sidebar.html:9
 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
 #: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
 #: templates/navbar.html:24 users/models.py:39
 msgid "Parts"
 msgstr ""
@@ -4202,7 +4187,7 @@ msgstr ""
 
 #: part/models.py:842 part/templates/part/part_base.html:266
 #: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
 msgid "IPN"
 msgstr ""
 
@@ -4316,7 +4301,7 @@ msgid "Test with this name already exists for this part"
 msgstr ""
 
 #: part/models.py:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
 msgid "Test Name"
 msgstr ""
 
@@ -4448,7 +4433,7 @@ msgid "BOM quantity for this BOM item"
 msgstr ""
 
 #: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
 #: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
@@ -4482,7 +4467,7 @@ msgid "BOM line checksum"
 msgstr ""
 
 #: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
 #: templates/js/translated/table_filters.js:68
 #: templates/js/translated/table_filters.js:88
 msgid "Inherited"
@@ -4493,7 +4478,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
 #: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
 msgid "Allow Variants"
 msgstr ""
 
@@ -4714,6 +4699,11 @@ msgstr ""
 msgid "New Part"
 msgstr ""
 
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr "Valgmuligheter"
+
 #: part/templates/part/category.html:172
 msgid "Set category"
 msgstr ""
@@ -4902,46 +4892,46 @@ msgstr ""
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
 msgid "Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
 msgid "Add Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
@@ -5084,8 +5074,8 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
 #: templates/js/translated/model_renderers.js:192
 #: templates/js/translated/part.js:581 templates/js/translated/part.js:658
 msgid "Inactive"
@@ -5101,20 +5091,22 @@ msgstr ""
 msgid "This part is a variant of %(link)s"
 msgstr ""
 
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr ""
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr ""
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
 msgid "Can Build"
 msgstr ""
 
@@ -5133,7 +5125,7 @@ msgid "Latest Serial Number"
 msgstr ""
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr ""
 
@@ -5172,7 +5164,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -5291,7 +5283,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
 msgid "Supplier Cost"
 msgstr ""
 
@@ -5530,7 +5522,7 @@ msgstr "Strekkkoden hash samsvarer allerede med lagervare"
 msgid "Barcode associated with Stock Item"
 msgstr "Strekkode tilknyttet lagervare"
 
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
 msgid "Label printing failed"
 msgstr ""
 
@@ -5770,12 +5762,12 @@ msgid "Stock Item Test Report"
 msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr ""
 
@@ -5796,7 +5788,7 @@ msgstr ""
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
 msgid "Date"
 msgstr ""
 
@@ -5815,7 +5807,7 @@ msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2589
 msgid "Serial"
 msgstr ""
 
@@ -5832,7 +5824,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr ""
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr ""
 
@@ -5894,7 +5886,7 @@ msgstr ""
 msgid "Packaging this stock item is stored in"
 msgstr ""
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr ""
 
@@ -5934,8 +5926,8 @@ msgstr ""
 msgid "Destination Sales Order"
 msgstr ""
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1816
 msgid "Expiry Date"
 msgstr ""
 
@@ -6215,11 +6207,11 @@ msgstr ""
 msgid "Installed Stock Items"
 msgstr ""
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
 msgid "Install Stock Item"
 msgstr ""
 
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
 msgid "Add Test Result"
 msgstr ""
 
@@ -6311,110 +6303,114 @@ msgstr ""
 msgid "Delete stock item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:244
-msgid "This stock item has not passed all required tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:252
-msgid "This stock item is allocated to Sales Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr ""
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:284
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:292
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1693
+msgid "No location set"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1832
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr ""
 
@@ -6486,8 +6482,8 @@ msgstr ""
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:198 users/models.py:40
 msgid "Stock Locations"
 msgstr ""
 
@@ -6539,7 +6535,7 @@ msgstr ""
 msgid "Child Items"
 msgstr ""
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr ""
 
@@ -6564,55 +6560,55 @@ msgstr ""
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr ""
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr ""
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr ""
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr ""
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr ""
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr ""
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr ""
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr "Sjekk bekreftelsesboksen"
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr ""
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr ""
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr ""
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr ""
 
@@ -7331,9 +7327,9 @@ msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr ""
@@ -7602,14 +7598,14 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
 #: templates/js/translated/part.js:530
 #: templates/js/translated/table_filters.js:178
 msgid "Available"
@@ -7644,67 +7640,67 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
-#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
 msgid "No Response"
 msgstr ""
 
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
 msgid "No response from the InvenTree server"
 msgstr ""
 
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
 msgid "Error 400: Bad request"
 msgstr ""
 
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
 msgid "API request returned error code 400"
 msgstr ""
 
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
 msgid "Error 401: Not Authenticated"
 msgstr ""
 
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
 msgid "Authentication credentials not supplied"
 msgstr ""
 
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
 msgid "Error 403: Permission Denied"
 msgstr ""
 
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
 msgid "You do not have the required permissions to access this function"
 msgstr ""
 
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
 msgid "Error 404: Resource Not Found"
 msgstr ""
 
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
 msgid "The requested resource could not be located on the server"
 msgstr ""
 
-#: templates/js/translated/api.js:217
+#: templates/js/translated/api.js:262
 msgid "Error 405: Method Not Allowed"
 msgstr ""
 
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
 msgid "HTTP method not allowed at URL"
 msgstr ""
 
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
 msgid "Error 408: Timeout"
 msgstr ""
 
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
 msgid "Connection timeout while requesting data from server"
 msgstr ""
 
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
 msgid "Unhandled Error Code"
 msgstr ""
 
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
 msgid "Error code"
 msgstr ""
 
@@ -7765,7 +7761,7 @@ msgid "Unknown response from server"
 msgstr ""
 
 #: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "Invalid server response"
 msgstr ""
 
@@ -7847,12 +7843,12 @@ msgid "Download BOM Template"
 msgstr ""
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
 msgid "Format"
 msgstr ""
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr ""
 
@@ -7932,84 +7928,84 @@ msgstr ""
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
 msgid "Load BOM for subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
 msgid "No Stock Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
 msgid "Includes variant and substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
 #: templates/js/translated/part.js:690
 msgid "Includes variant stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
 msgid "Includes substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -8131,262 +8127,270 @@ msgstr ""
 msgid "Location not specified"
 msgstr ""
 
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
 msgid "No active build outputs found"
 msgstr ""
 
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
 msgid "Allocated Stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
 msgid "No tracked BOM items for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
 msgid "Completed Tests"
 msgstr ""
 
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
 msgid "No required tests for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
 msgid "Edit stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
 msgid "Delete stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
 msgid "Edit Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
 msgid "Remove Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
 msgid "Substitute parts available"
 msgstr ""
 
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
 msgid "Quantity Per"
 msgstr ""
 
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
 msgid "Insufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
 msgid "Sufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
 msgid "Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
 msgid "Build stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
 msgid "Order stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
 msgid "Allocate stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr ""
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
 msgid "You must select at least one part to allocate"
 msgstr ""
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
 msgid "All Parts Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
 msgid "All selected parts have been fully allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
 msgid "Select source location (leave blank to take from all locations)"
 msgstr ""
 
-#: templates/js/translated/build.js:2117
+#: templates/js/translated/build.js:2100
 msgid "Allocate Stock Items to Build Order"
 msgstr ""
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
 msgid "No matching stock locations"
 msgstr ""
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
 msgid "No matching stock items"
 msgstr ""
 
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
 msgid "Automatic Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
 msgstr ""
 
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
 msgid "If a location is specifed, stock will only be allocated from that location"
 msgstr ""
 
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
 msgstr ""
 
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
 msgstr ""
 
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
 msgid "Allocate Stock Items"
 msgstr ""
 
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
 msgid "Select"
 msgstr ""
 
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
 msgid "Build order is overdue"
 msgstr ""
 
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
 msgid "Progress"
 msgstr ""
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
 msgid "No information"
 msgstr ""
 
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
 msgid "No parts allocated for"
 msgstr ""
 
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
 msgid "Add Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
 msgid "Edit Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
+msgstr "Alle valgte leverandørdeler vil slettes"
+
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:342
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr ""
+
+#: templates/js/translated/company.js:595
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
 #: templates/js/translated/part.js:650
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
 #: templates/js/translated/part.js:654
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
 msgid "No supplier parts found"
 msgstr ""
 
@@ -8424,61 +8428,61 @@ msgstr ""
 msgid "Create filter"
 msgstr ""
 
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
 msgid "Action Prohibited"
 msgstr ""
 
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
 msgid "Create operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
 msgid "Update operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
 msgid "Delete operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
 msgid "View operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
 msgid "Keep this form open"
 msgstr ""
 
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
 msgid "Enter a valid number"
 msgstr ""
 
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
 #: templates/modals.html:43
 msgid "Form errors exist"
 msgstr ""
 
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
 msgid "No results found"
 msgstr ""
 
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
 msgid "Searching"
 msgstr ""
 
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
 msgid "Clear input"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "File Column"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "Field Name"
 msgstr ""
 
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
 msgid "Select Columns"
 msgstr ""
 
@@ -8552,62 +8556,62 @@ msgstr ""
 msgid "Select Label Template"
 msgstr ""
 
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
 msgid "Cancel"
 msgstr ""
 
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
 #: templates/modals.html:28 templates/modals.html:51
 msgid "Submit"
 msgstr ""
 
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
 msgid "Form Title"
 msgstr ""
 
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
 msgid "Waiting for server..."
 msgstr ""
 
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
 msgid "Show Error Information"
 msgstr ""
 
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
 msgid "Accept"
 msgstr ""
 
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
 msgid "Loading Data"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Invalid response from server"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Form data missing from server response"
 msgstr ""
 
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
 msgid "Error posting form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "JSON response missing form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
 msgid "Error 400: Bad Request"
 msgstr ""
 
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
 msgid "Server returned error code 400"
 msgstr ""
 
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
 msgid "Error requesting form data"
 msgstr ""
 
@@ -8665,377 +8669,381 @@ msgstr ""
 msgid "Notifications will load here"
 msgstr ""
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
 msgstr ""
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
 msgstr ""
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr ""
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr ""
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr ""
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr ""
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr ""
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr ""
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr ""
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr ""
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr ""
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr ""
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr ""
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
 msgid "Stock Status"
 msgstr ""
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr ""
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr ""
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr ""
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
 msgid "Order is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
 msgid "Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
 msgid "Duplicate Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
 msgid "Edit Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
 msgid "Delete Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1856
 msgid "No line items found"
 msgstr ""
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
 msgid "Total"
 msgstr ""
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
 msgid "Total Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
 msgid "Duplicate line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
 msgid "Edit line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
 msgid "Delete line item"
 msgstr ""
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
 msgid "Duplicate line"
 msgstr ""
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
 msgid "Edit line"
 msgstr ""
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
 msgid "Delete line"
 msgstr ""
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
 msgid "Duplicate Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
 msgid "Edit Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
 msgid "Delete Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2279
 msgid "No matching line"
 msgstr ""
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2392
 msgid "No sales orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2462
 msgid "Invalid Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2549
 msgid "Edit shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2552
 msgid "Complete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2557
 msgid "Delete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2577
 msgid "Edit Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2594
 msgid "Delete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2628
 msgid "No matching shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2638
 msgid "Shipment Reference"
 msgstr ""
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2662
 msgid "Not shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2668
 msgid "Tracking"
 msgstr ""
 
-#: templates/js/translated/order.js:2603
+#: templates/js/translated/order.js:2672
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:2841
 msgid "Add Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2892
 msgid "Confirm stock allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2893
 msgid "Allocate Stock Items to Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:3101
 msgid "No sales order allocations found"
 msgstr ""
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:3182
 msgid "Edit Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:3199
 msgid "Confirm Delete Operation"
 msgstr ""
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:3200
 msgid "Delete Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
 msgid "Shipped to customer"
 msgstr ""
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
 msgid "Stock location not specified"
 msgstr ""
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3623
 msgid "Allocate serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3629
 msgid "Purchase stock"
 msgstr ""
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
 msgid "Calculate price"
 msgstr ""
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3648
 msgid "Cannot be deleted as items have been shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3651
 msgid "Cannot be deleted as items have been allocated"
 msgstr ""
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3733
 msgid "Allocate Serial Numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3842
 msgid "Update Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3856
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:4092
 msgid "No matching lines"
 msgstr ""
 
@@ -9217,7 +9225,7 @@ msgid "No category"
 msgstr ""
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2238
 msgid "Display as list"
 msgstr ""
 
@@ -9225,7 +9233,7 @@ msgstr ""
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
 msgid "Display as tree"
 msgstr ""
 
@@ -9233,7 +9241,7 @@ msgstr ""
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
 msgid "Path"
 msgstr ""
 
@@ -9241,12 +9249,12 @@ msgstr ""
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
 msgid "Delete test result"
 msgstr ""
 
@@ -9367,11 +9375,11 @@ msgstr ""
 msgid "Sales Order(s) must be selected before printing report"
 msgstr ""
 
-#: templates/js/translated/search.js:307
+#: templates/js/translated/search.js:352
 msgid "Minimize results"
 msgstr ""
 
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:355
 msgid "Remove results"
 msgstr ""
 
@@ -9531,204 +9539,204 @@ msgstr ""
 msgid "Confirm stock adjustment"
 msgstr ""
 
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
 msgid "PASS"
 msgstr ""
 
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
 msgid "FAIL"
 msgstr ""
 
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
 msgid "NO RESULT"
 msgstr ""
 
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
 msgid "Pass test"
 msgstr ""
 
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
 msgid "Add test result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
 msgid "No test results found"
 msgstr ""
 
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
 msgid "Test Date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
 msgid "Edit Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
 msgid "Delete Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
 msgid "In production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
 msgid "Installed in Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
 msgid "Assigned to Sales Order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
 msgid "No stock location set"
 msgstr ""
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1712
 msgid "Stock item is in production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1717
 msgid "Stock item assigned to sales order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1720
 msgid "Stock item assigned to customer"
 msgstr ""
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr ""
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr ""
-
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
 msgid "Serialized stock item has been allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
 msgid "Stock item has been fully allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
 msgid "Stock item has been partially allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1730
 msgid "Stock item has been installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1734
+msgid "Stock item has expired"
+msgstr ""
+
+#: templates/js/translated/stock.js:1736
+msgid "Stock item will expire soon"
+msgstr ""
+
+#: templates/js/translated/stock.js:1743
 msgid "Stock item has been rejected"
 msgstr ""
 
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1745
 msgid "Stock item is lost"
 msgstr ""
 
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1747
 msgid "Stock item is destroyed"
 msgstr ""
 
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1751
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr ""
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1802
 msgid "Stocktake"
 msgstr ""
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1884
 msgid "Supplier part not specified"
 msgstr ""
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1922
 msgid "No stock items matching query"
 msgstr ""
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2095
 msgid "Set Stock Status"
 msgstr ""
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2109
 msgid "Select Status Code"
 msgstr ""
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2110
 msgid "Status code must be selected"
 msgstr ""
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2365
 msgid "Details"
 msgstr ""
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2381
 msgid "Part information unavailable"
 msgstr ""
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2403
 msgid "Location no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2422
 msgid "Purchase order no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
 msgid "Customer no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2459
 msgid "Stock item no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2482
 msgid "Added"
 msgstr ""
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2490
 msgid "Removed"
 msgstr ""
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2566
 msgid "No installed items"
 msgstr ""
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
 msgid "Uninstall Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2666
 msgid "Select stock item to uninstall"
 msgstr ""
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2687
 msgid "Install another stock item into this item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2688
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr ""
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2690
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2691
 msgid "The Stock Item is currently available in stock"
 msgstr ""
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2692
 msgid "The Stock Item is not already installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2693
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr ""
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2706
 msgid "Select part to install"
 msgstr ""
 
@@ -9960,69 +9968,81 @@ msgstr ""
 msgid "Purchasable"
 msgstr ""
 
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr "Vis kalender"
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr "Vis liste"
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
 msgid "Export Table Data"
 msgstr ""
 
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
 msgid "Select File Format"
 msgstr ""
 
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
 msgid "Loading data"
 msgstr ""
 
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
 msgid "rows per page"
 msgstr ""
 
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
 msgid "Showing all rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "Showing"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "to"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "of"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
 #: templates/search.html:8 templates/search_form.html:6
 #: templates/search_form.html:7
 msgid "Search"
 msgstr ""
 
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
 msgid "No matching results"
 msgstr ""
 
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
 msgid "Hide/Show pagination"
 msgstr ""
 
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
 msgid "Refresh"
 msgstr ""
 
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
 msgid "Toggle"
 msgstr ""
 
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
 msgid "Columns"
 msgstr ""
 
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
 msgid "All"
 msgstr ""
 
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index 87b1f938e9..1d24e4d172 100644
--- a/InvenTree/locale/pl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pl/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
-"PO-Revision-Date: 2022-05-24 01:42\n"
+"POT-Creation-Date: 2022-05-28 23:41+0000\n"
+"PO-Revision-Date: 2022-05-29 01:47\n"
 "Last-Translator: \n"
 "Language-Team: Polish\n"
 "Language: pl_PL\n"
@@ -21,7 +21,7 @@ msgstr ""
 msgid "API endpoint not found"
 msgstr "Nie znaleziono punktu końcowego API"
 
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
 msgid "Error details can be found in the admin panel"
 msgstr ""
 
@@ -30,7 +30,7 @@ msgid "Enter date"
 msgstr "Wprowadź dane"
 
 #: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
 msgid "Confirm"
 msgstr "Potwierdź"
 
@@ -79,7 +79,7 @@ msgstr "Należy ponownie wpisać ten sam adres e-mail."
 msgid "Duplicate serial: {sn}"
 msgstr "Powtórzony numer seryjny: {sn}"
 
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
 msgid "Invalid quantity provided"
 msgstr "Podano nieprawidłową ilość"
 
@@ -134,10 +134,12 @@ msgid "Select file to attach"
 msgstr "Wybierz plik do załączenia"
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:139 order/models.py:1273
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr "Łącze"
 
@@ -159,7 +161,7 @@ msgstr "Komentarz pliku"
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2513
 msgid "User"
 msgstr "Użytkownik"
 
@@ -205,9 +207,10 @@ msgstr "Błędny wybór"
 #: templates/InvenTree/settings/plugin.html:132
 #: templates/InvenTree/settings/plugin_settings.html:23
 #: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2283
 msgid "Name"
 msgstr "Nazwa"
 
@@ -216,22 +219,22 @@ msgstr "Nazwa"
 #: company/models.py:575 company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
 #: part/templates/part/part_base.html:167
 #: part/templates/part/set_category.html:14 report/models.py:182
 #: report/models.py:547 report/models.py:586
 #: report/templates/report/inventree_build_order_base.html:118
 #: stock/templates/stock/location.html:103
 #: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
 msgid "Description"
 msgstr "Opis"
 
@@ -406,7 +409,7 @@ msgid "InvenTree system health checks failed"
 msgstr ""
 
 #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
 msgid "Pending"
 msgstr "W toku"
 
@@ -414,141 +417,145 @@ msgstr "W toku"
 msgid "Placed"
 msgstr "Umieszczony"
 
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
 #: order/templates/order/order_base.html:134
 #: order/templates/order/sales_order_base.html:133
 msgid "Complete"
 msgstr "Zakończono"
 
 #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
 msgid "Cancelled"
 msgstr "Anulowano"
 
 #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
 msgid "Lost"
 msgstr "Zagubiono"
 
 #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
 msgid "Returned"
 msgstr "Zwrócone"
 
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
 msgid "Shipped"
 msgstr "Wysłane"
 
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
 msgid "OK"
 msgstr ""
 
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
 msgid "Attention needed"
 msgstr "Wymaga uwagi"
 
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
 msgid "Damaged"
 msgstr "Uszkodzone"
 
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
 msgid "Destroyed"
 msgstr "Zniszczone"
 
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
 msgid "Rejected"
 msgstr "Odrzucone"
 
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
 msgid "Legacy stock tracking entry"
 msgstr ""
 
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
 msgid "Stock item created"
 msgstr "Utworzono element magazynowy"
 
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
 msgid "Edited stock item"
 msgstr "Edytuj pozycję magazynową"
 
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
 msgid "Assigned serial number"
 msgstr "Przypisano numer seryjny"
 
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
 msgid "Stock counted"
 msgstr "Zapas policzony"
 
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
 msgid "Stock manually added"
 msgstr "Zapas dodany ręcznie"
 
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
 msgid "Stock manually removed"
 msgstr "Zapas usunięty ręcznie"
 
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
 msgid "Location changed"
 msgstr "Lokalizacja zmieniona"
 
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
 msgid "Installed into assembly"
 msgstr ""
 
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
 msgid "Removed from assembly"
 msgstr ""
 
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
 msgid "Installed component item"
 msgstr ""
 
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
 msgid "Removed component item"
 msgstr ""
 
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
 msgid "Split from parent item"
 msgstr ""
 
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
 msgid "Split child item"
 msgstr "Podziel element podrzędny"
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
 msgid "Merged stock items"
 msgstr ""
 
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
 msgid "Converted to variant"
 msgstr ""
 
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
 msgid "Sent to customer"
 msgstr "Wyślij do klienta"
 
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
 msgid "Returned from customer"
 msgstr "Zwrócony od klienta"
 
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
 msgid "Build order output created"
 msgstr ""
 
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
 msgid "Build order output completed"
 msgstr ""
 
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
 msgid "Consumed by build order"
 msgstr ""
 
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
 msgid "Received against purchase order"
 msgstr ""
 
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
 msgid "Production"
 msgstr "Produkcja"
 
@@ -637,15 +644,15 @@ msgstr "Zlecenia budowy"
 msgid "Build Order Reference"
 msgstr "Odwołanie do zamówienia wykonania"
 
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
 #: part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
 msgid "Reference"
 msgstr "Referencja"
 
@@ -664,7 +671,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:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
 #: part/models.py:2303 part/models.py:2319 part/models.py:2338
 #: part/models.py:2355 part/models.py:2457 part/models.py:2579
 #: part/models.py:2669 part/models.py:2760 part/models.py:3050
@@ -679,19 +686,21 @@ 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:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
 msgid "Part"
 msgstr "Komponent"
 
@@ -708,7 +717,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr "Zamówienie sprzedaży, do którego budowa jest przypisana"
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
 msgid "Source Location"
 msgstr "Lokalizacja źródła"
 
@@ -749,7 +758,7 @@ msgid "Build status code"
 msgstr "Kod statusu budowania"
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr "Kod partii"
 
@@ -757,12 +766,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:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
 msgid "Creation Date"
 msgstr "Data utworzenia"
 
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
 msgid "Target completion date"
 msgstr "Docelowy termin zakończenia"
 
@@ -770,8 +779,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:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
 msgid "Completion Date"
 msgstr "Data zakończenia"
 
@@ -779,7 +788,7 @@ msgstr "Data zakończenia"
 msgid "completed by"
 msgstr "zrealizowane przez"
 
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
 msgid "Issued by"
 msgstr "Wydany przez"
 
@@ -788,11 +797,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:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
 msgid "Responsible"
 msgstr "Odpowiedzialny"
 
@@ -804,14 +813,14 @@ msgstr "Użytkownik odpowiedzialny za to zamówienie budowy"
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr "Link Zewnętrzny"
 
 #: build/models.py:334 build/serializers.py:390
 #: build/templates/build/sidebar.html:21 company/models.py:134
 #: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
 #: order/templates/order/po_sidebar.html:11
 #: order/templates/order/so_sidebar.html:17 part/models.py:983
 #: part/templates/part/part_sidebar.html:59
@@ -820,11 +829,11 @@ msgstr "Link Zewnętrzny"
 #: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
 msgid "Notes"
 msgstr "Uwagi"
 
@@ -857,7 +866,7 @@ msgstr ""
 msgid "Stock item is over-allocated"
 msgstr ""
 
-#: build/models.py:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1413
 msgid "Allocation quantity must be greater than zero"
 msgstr "Alokowana ilość musi być większa niż zero"
 
@@ -869,8 +878,8 @@ msgstr ""
 msgid "Selected stock item not found in BOM"
 msgstr ""
 
-#: build/models.py:1375 stock/templates/stock/item_base.html:335
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
 #: templates/navbar.html:38
 msgid "Build"
 msgstr "Budowa"
@@ -879,18 +888,18 @@ msgstr "Budowa"
 msgid "Build to allocate parts"
 msgstr ""
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2449
 msgid "Stock Item"
 msgstr "Element magazynowy"
 
@@ -902,10 +911,10 @@ msgstr "Lokalizacja magazynowania przedmiotu"
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_build_order_base.html:114
@@ -913,25 +922,24 @@ msgstr "Lokalizacja magazynowania przedmiotu"
 #: 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
 msgid "Quantity"
 msgstr "Ilość"
 
@@ -948,7 +956,7 @@ msgid "Destination stock item"
 msgstr "Docelowa lokalizacja magazynowa przedmiotu"
 
 #: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
 msgid "Build Output"
 msgstr ""
 
@@ -972,7 +980,7 @@ msgstr ""
 msgid "Enter quantity for build output"
 msgstr ""
 
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
 #: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
 #: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
 #: stock/serializers.py:294
@@ -987,8 +995,8 @@ msgstr ""
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr ""
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr "Numer seryjny"
@@ -1015,15 +1023,15 @@ msgstr ""
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
 msgid "Location"
 msgstr "Lokalizacja"
 
@@ -1032,12 +1040,12 @@ msgid "Location for completed build outputs"
 msgstr ""
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: build/templates/build/detail.html:62 order/models.py:663
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
 msgid "Status"
 msgstr ""
 
@@ -1118,7 +1126,7 @@ msgstr ""
 msgid "Item must be in stock"
 msgstr "Towar musi znajdować się w magazynie"
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr ""
@@ -1135,7 +1143,7 @@ msgstr ""
 msgid "This stock item has already been allocated to this build output"
 msgstr ""
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr ""
 
@@ -1233,13 +1241,13 @@ msgid "Stock has not been fully allocated to this Build Order"
 msgstr ""
 
 #: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr "Data docelowa"
 
@@ -1266,14 +1274,14 @@ msgid "Completed"
 msgstr "Zakończone"
 
 #: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2436
 msgid "Sales Order"
 msgstr "Zamówienie zakupu"
 
@@ -1308,8 +1316,8 @@ msgstr "Źródło magazynu"
 msgid "Stock can be taken from any available location."
 msgstr ""
 
-#: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
 msgid "Destination"
 msgstr "Przeznaczenie"
 
@@ -1322,11 +1330,11 @@ msgid "Allocated Parts"
 msgstr ""
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
-#: templates/js/translated/build.js:1184
+#: stock/templates/stock/item_base.html:170
+#: templates/js/translated/build.js:1179
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1335,7 +1343,7 @@ msgstr "Partia"
 #: build/templates/build/detail.html:126
 #: order/templates/order/order_base.html:149
 #: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
 msgid "Created"
 msgstr "Utworzony"
 
@@ -1355,7 +1363,7 @@ msgstr ""
 msgid "Allocate Stock to Build"
 msgstr "Przydziel zapasy do budowy"
 
-#: build/templates/build/detail.html:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
 msgid "Unallocate stock"
 msgstr "Cofnij przydział zapasów"
 
@@ -1385,8 +1393,8 @@ msgstr "Zamów wymagane komponenty"
 
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: company/templates/company/detail.html:85
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr "Zamów komponent"
 
@@ -1461,8 +1469,8 @@ msgid "Completed Build Outputs"
 msgstr ""
 
 #: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
 #: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:82
 #: order/templates/order/sales_order_detail.html:129
@@ -1476,11 +1484,11 @@ msgstr "Załączniki"
 msgid "Build Notes"
 msgstr "Notatki tworzenia"
 
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
 msgid "Allocation Complete"
 msgstr ""
 
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
@@ -1492,18 +1500,6 @@ msgstr "Nowe zlecenie budowy"
 msgid "Print Build Orders"
 msgstr "Wydrukuj zlecenia budowy"
 
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr "Pokaż widok kalendarza"
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr "Pokaż widok listy"
-
 #: build/templates/build/sidebar.html:5
 msgid "Build Order Details"
 msgstr ""
@@ -1727,7 +1723,7 @@ msgstr "Szablon"
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
 #: templates/js/translated/table_filters.js:168
 #: templates/js/translated/table_filters.js:460
 msgid "Assembly"
@@ -2413,7 +2409,7 @@ msgid "Price break quantity"
 msgstr ""
 
 #: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: company/templates/company/supplier_part.html:263 order/models.py:975
 #: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
 msgid "Price"
 msgstr "Cena"
@@ -2556,7 +2552,7 @@ msgstr "Opis firmy"
 
 #: company/models.py:104 company/templates/company/company_base.html:100
 #: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
 msgid "Website"
 msgstr "Strona WWW"
 
@@ -2651,10 +2647,11 @@ msgstr "Wybierz część"
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: stock/templates/stock/item_base.html:212
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
 #: templates/js/translated/table_filters.js:411
 msgid "Manufacturer"
 msgstr "Producent"
@@ -2665,8 +2662,10 @@ msgstr "Wybierz producenta"
 
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr ""
@@ -2686,7 +2685,7 @@ msgstr ""
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr "Komponent producenta"
 
@@ -2696,8 +2695,9 @@ msgstr ""
 
 #: company/models.py:427
 #: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
 msgid "Value"
 msgstr "Wartość"
 
@@ -2708,7 +2708,7 @@ msgstr ""
 #: company/models.py:434 part/models.py:940 part/models.py:2549
 #: part/templates/part/part_base.html:280
 #: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
 msgid "Units"
 msgstr "Jednostki"
 
@@ -2721,11 +2721,12 @@ msgid "Linked manufacturer part must reference the same base part"
 msgstr ""
 
 #: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: stock/templates/stock/item_base.html:229
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2736,8 +2737,9 @@ msgid "Select supplier"
 msgstr "Wybierz dostawcę"
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
 msgid "SKU"
 msgstr ""
 
@@ -2773,8 +2775,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr ""
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
 msgid "Packaging"
 msgstr "Opakowanie"
 
@@ -2804,12 +2806,12 @@ msgstr "Kod Waluty"
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
 msgid "Company"
 msgstr "Firma"
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr "Utwórz zamówienie zakupu"
 
@@ -2822,7 +2824,7 @@ msgid "Edit company information"
 msgstr ""
 
 #: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
 msgid "Edit Company"
 msgstr "Edytuj firmę"
 
@@ -2845,12 +2847,12 @@ msgstr "Prześlij nowy obraz"
 msgid "Download image from URL"
 msgstr "Pobierz obraz z adresu URL"
 
-#: company/templates/company/company_base.html:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr "Klient"
@@ -2869,7 +2871,7 @@ msgid "Upload Image"
 msgstr "Załaduj obrazek"
 
 #: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
+#: company/templates/company/manufacturer_part_sidebar.html:7
 #: templates/InvenTree/search.html:118
 msgid "Supplier Parts"
 msgstr "Komponenty dostawcy"
@@ -2884,28 +2886,19 @@ msgstr "Utwórz nowego dostawcę części"
 msgid "New Supplier Part"
 msgstr "Nowy dostawca części"
 
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr "Opcje"
-
 #: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
 #: part/templates/part/category.html:176
 msgid "Order parts"
 msgstr "Zamów komponenty"
 
 #: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
 msgid "Delete parts"
 msgstr "Usuń części"
 
 #: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
 msgid "Delete Parts"
 msgstr "Usuń części"
 
@@ -2917,88 +2910,76 @@ msgstr "Części producenta"
 msgid "Create new manufacturer part"
 msgstr "Utwórz nową część producenta"
 
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
 msgid "New Manufacturer Part"
 msgstr "Nowa część producenta"
 
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
 msgid "Supplier Stock"
 msgstr "Zapasy dostawcy"
 
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
 #: company/templates/company/sidebar.html:12
 #: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
 #: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:235 templates/navbar.html:50
 #: users/models.py:43
 msgid "Purchase Orders"
 msgstr "Zamówienia zakupu"
 
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
 #: order/templates/order/purchase_orders.html:17
 msgid "Create new purchase order"
 msgstr "Utwórz nowe zamówienie zakupu"
 
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr "Nowe zamówienie zakupu"
 
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
 #: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
 #: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
 #: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:259 templates/navbar.html:61
 #: users/models.py:44
 msgid "Sales Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
 #: order/templates/order/sales_orders.html:20
 msgid "Create new sales order"
 msgstr ""
 
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
 #: order/templates/order/sales_orders.html:21
 msgid "New Sales Order"
 msgstr ""
 
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
 msgid "Assigned Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
 msgid "Company Notes"
 msgstr "Notatki firmy"
 
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr "Usunąć komponenty dostawcy?"
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr "Wszystkie wybrane komponenty dostawcy zostaną usunięte"
-
 #: company/templates/company/index.html:8
 msgid "Supplier List"
 msgstr "Lista dostawców"
 
 #: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
 #: templates/navbar.html:49
 msgid "Manufacturers"
 msgstr "Producenci"
@@ -3011,12 +2992,12 @@ msgid "Order part"
 msgstr "Zamów komponent"
 
 #: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
 msgid "Edit manufacturer part"
 msgstr "Edytuj komponent producenta"
 
 #: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
 msgid "Delete manufacturer part"
 msgstr "Usuń komponent producenta"
 
@@ -3032,55 +3013,46 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:119
 #: company/templates/company/supplier_part.html:15 company/views.py:41
 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
 msgid "Suppliers"
 msgstr "Dostawcy"
 
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
 #: part/templates/part/detail.html:363
 msgid "Delete supplier parts"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
 msgid "Delete"
 msgstr "Usuń"
 
-#: company/templates/company/manufacturer_part.html:164
+#: company/templates/company/manufacturer_part.html:166
 #: company/templates/company/manufacturer_part_sidebar.html:5
 #: part/templates/part/category_sidebar.html:19
 #: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8
 msgid "Parameters"
 msgstr "Parametry"
 
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
 #: part/templates/part/detail.html:184
 #: templates/InvenTree/settings/category.html:12
 #: templates/InvenTree/settings/part.html:66
 msgid "New Parameter"
 msgstr "Nowy parametr"
 
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
 msgid "Delete parameters"
 msgstr "Usuń parametry"
 
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
 msgid "Add Parameter"
 msgstr "Dodaj parametr"
 
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr "Wybrane parametry zostaną usunięte"
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr "Usuń parametry"
-
 #: company/templates/company/sidebar.html:6
 msgid "Manufactured Parts"
 msgstr ""
@@ -3099,19 +3071,19 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
 msgid "Delete supplier part"
 msgstr ""
 
@@ -3186,11 +3158,11 @@ msgstr "Ostatnio aktualizowane"
 #: part/templates/part/part_sidebar.html:14
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
 #: templates/InvenTree/settings/sidebar.html:43
 #: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
 #: templates/navbar.html:31
 msgid "Stock"
 msgstr "Stan"
@@ -3216,8 +3188,8 @@ msgstr "Cennik"
 #: stock/templates/stock/location.html:161
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
+#: templates/js/translated/stock.js:2307 users/models.py:41
 msgid "Stock Items"
 msgstr "Towary"
 
@@ -3229,7 +3201,7 @@ msgstr "Nowy dostawca"
 msgid "New Manufacturer"
 msgstr "Now producent"
 
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
 #: templates/navbar.html:60
 msgid "Customers"
 msgstr "Klienci"
@@ -3238,7 +3210,7 @@ msgstr "Klienci"
 msgid "New Customer"
 msgstr "Nowy klient"
 
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:212
 msgid "Companies"
 msgstr "Firmy"
 
@@ -3328,305 +3300,313 @@ msgstr ""
 msgid "Part query filters (comma-separated value of key=value pairs)"
 msgstr ""
 
-#: order/models.py:130
+#: order/models.py:137
 msgid "Order description"
 msgstr "Opis Zamówienia"
 
-#: order/models.py:132
+#: order/models.py:139 order/models.py:1274
 msgid "Link to external page"
 msgstr "Link do zewnętrznej witryny"
 
-#: order/models.py:140
+#: order/models.py:147
 msgid "Created By"
 msgstr "Utworzony przez"
 
-#: order/models.py:147
+#: order/models.py:154
 msgid "User or group responsible for this order"
 msgstr "Użytkownik lub grupa odpowiedzialna za to zamówienie"
 
-#: order/models.py:152
+#: order/models.py:159
 msgid "Order notes"
 msgstr "Notatki do zamówienia"
 
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
 msgid "Order reference"
 msgstr "Odniesienie zamówienia"
 
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
 msgid "Purchase order status"
 msgstr "Status zamówienia zakupu"
 
-#: order/models.py:253
+#: order/models.py:311
 msgid "Company from which the items are being ordered"
 msgstr ""
 
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
 msgid "Supplier Reference"
 msgstr ""
 
-#: order/models.py:256
+#: order/models.py:314
 msgid "Supplier order reference code"
 msgstr ""
 
-#: order/models.py:263
+#: order/models.py:321
 msgid "received by"
 msgstr "odebrane przez"
 
-#: order/models.py:268
+#: order/models.py:326
 msgid "Issue Date"
 msgstr "Data wydania"
 
-#: order/models.py:269
+#: order/models.py:327
 msgid "Date order was issued"
 msgstr "Data wystawienia zamówienia"
 
-#: order/models.py:274
+#: order/models.py:332
 msgid "Target Delivery Date"
 msgstr "Data Dostawy Towaru"
 
-#: order/models.py:275
+#: order/models.py:333
 msgid "Expected date for order delivery. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:281
+#: order/models.py:339
 msgid "Date order was completed"
 msgstr ""
 
-#: order/models.py:310
+#: order/models.py:368
 msgid "Part supplier must match PO supplier"
 msgstr ""
 
-#: order/models.py:456
+#: order/models.py:514
 msgid "Quantity must be a positive number"
 msgstr "Wartość musi być liczbą dodatnią"
 
-#: order/models.py:601
+#: order/models.py:659
 msgid "Company to which the items are being sold"
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer Reference "
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer order reference code"
 msgstr ""
 
-#: order/models.py:612
+#: order/models.py:670
 msgid "Target date for order completion. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
 msgid "Shipment Date"
 msgstr "Data wysyłki"
 
-#: order/models.py:622
+#: order/models.py:680
 msgid "shipped by"
 msgstr "wysłane przez"
 
-#: order/models.py:688
+#: order/models.py:746
 msgid "Order cannot be completed as no parts have been assigned"
 msgstr ""
 
-#: order/models.py:692
+#: order/models.py:750
 msgid "Only a pending order can be marked as complete"
 msgstr ""
 
-#: order/models.py:695
+#: order/models.py:753
 msgid "Order cannot be completed as there are incomplete shipments"
 msgstr ""
 
-#: order/models.py:698
+#: order/models.py:756
 msgid "Order cannot be completed as there are incomplete line items"
 msgstr ""
 
-#: order/models.py:878
+#: order/models.py:936
 msgid "Item quantity"
 msgstr "Ilość elementów"
 
-#: order/models.py:884
+#: order/models.py:942
 msgid "Line item reference"
 msgstr ""
 
-#: order/models.py:886
+#: order/models.py:944
 msgid "Line item notes"
 msgstr ""
 
-#: order/models.py:891
+#: order/models.py:949
 msgid "Target shipping date for this line item"
 msgstr ""
 
-#: order/models.py:909
+#: order/models.py:967
 msgid "Context"
 msgstr ""
 
-#: order/models.py:910
+#: order/models.py:968
 msgid "Additional context for this line"
 msgstr ""
 
-#: order/models.py:918
+#: order/models.py:976
 msgid "Unit price"
 msgstr ""
 
-#: order/models.py:951
+#: order/models.py:1009
 msgid "Supplier part must match supplier"
 msgstr ""
 
-#: order/models.py:958
+#: order/models.py:1016
 msgid "deleted"
 msgstr ""
 
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
 msgid "Order"
 msgstr "Zamówienie"
 
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
 msgid "Purchase Order"
 msgstr "Zlecenie zakupu"
 
-#: order/models.py:984
+#: order/models.py:1042
 msgid "Supplier part"
 msgstr ""
 
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
 msgstr "Odebrane"
 
-#: order/models.py:992
+#: order/models.py:1050
 msgid "Number of items received"
 msgstr ""
 
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1900
 msgid "Purchase Price"
 msgstr "Cena zakupu"
 
-#: order/models.py:1000
+#: order/models.py:1058
 msgid "Unit purchase price"
 msgstr "Cena zakupu jednostkowego"
 
-#: order/models.py:1008
+#: order/models.py:1066
 msgid "Where does the Purchaser want this item to be stored?"
 msgstr "Gdzie kupujący chce przechowywać ten przedmiot?"
 
-#: order/models.py:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
 #: part/templates/part/prices.html:119 part/templates/part/prices.html:288
 msgid "Sale Price"
 msgstr "Cena sprzedaży"
 
-#: order/models.py:1079
+#: order/models.py:1137
 msgid "Unit sale price"
 msgstr "Jednostkowa cena sprzedaży"
 
-#: order/models.py:1084
+#: order/models.py:1142
 msgid "Shipped quantity"
 msgstr "Wysłana ilość"
 
-#: order/models.py:1171
+#: order/models.py:1229
 msgid "Date of shipment"
 msgstr "Data wysyłki"
 
-#: order/models.py:1178
+#: order/models.py:1236
 msgid "Checked By"
 msgstr "Sprawdzone przez"
 
-#: order/models.py:1179
+#: order/models.py:1237
 msgid "User who checked this shipment"
 msgstr "Użytkownik, który sprawdził tę wysyłkę"
 
-#: order/models.py:1187
+#: order/models.py:1245
 msgid "Shipment number"
 msgstr "Numer przesyłki"
 
-#: order/models.py:1194
+#: order/models.py:1252
 msgid "Shipment notes"
 msgstr "Notatki do przesyłki"
 
-#: order/models.py:1201
+#: order/models.py:1259
 msgid "Tracking Number"
 msgstr "Numer śledzenia"
 
-#: order/models.py:1202
+#: order/models.py:1260
 msgid "Shipment tracking information"
 msgstr "Informacje o śledzeniu przesyłki"
 
-#: order/models.py:1213
+#: order/models.py:1267
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1268
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1285
 msgid "Shipment has already been sent"
 msgstr "Przesyłka została już wysłana"
 
-#: order/models.py:1216
+#: order/models.py:1288
 msgid "Shipment has no allocated stock items"
 msgstr ""
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1395 order/models.py:1397
 msgid "Stock item has not been assigned"
 msgstr ""
 
-#: order/models.py:1317
+#: order/models.py:1401
 msgid "Cannot allocate stock item to a line with a different part"
 msgstr ""
 
-#: order/models.py:1319
+#: order/models.py:1403
 msgid "Cannot allocate stock to a line without a part"
 msgstr ""
 
-#: order/models.py:1322
+#: order/models.py:1406
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr "Zarezerwowana ilość nie może przekraczać ilości na stanie"
 
-#: order/models.py:1326
+#: order/models.py:1410
 msgid "StockItem is over-allocated"
 msgstr ""
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1416 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr ""
 
-#: order/models.py:1335
+#: order/models.py:1419
 msgid "Sales order does not match shipment"
 msgstr ""
 
-#: order/models.py:1336
+#: order/models.py:1420
 msgid "Shipment does not match sales order"
 msgstr ""
 
-#: order/models.py:1344
+#: order/models.py:1428
 msgid "Line"
 msgstr "Linia"
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr "Przesyłka"
 
-#: order/models.py:1353
+#: order/models.py:1437
 msgid "Sales order shipment reference"
 msgstr ""
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr "Komponent"
 
-#: order/models.py:1366
+#: order/models.py:1450
 msgid "Select stock item to allocate"
 msgstr ""
 
-#: order/models.py:1369
+#: order/models.py:1453
 msgid "Enter stock allocation quantity"
 msgstr ""
 
@@ -3662,7 +3642,7 @@ msgstr ""
 msgid "Purchase order must match supplier"
 msgstr ""
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr ""
 
@@ -3674,11 +3654,11 @@ msgstr ""
 msgid "Select destination location for received items"
 msgstr ""
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr ""
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr ""
 
@@ -3714,35 +3694,35 @@ msgstr ""
 msgid "Sale price currency"
 msgstr ""
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr ""
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr ""
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr ""
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr ""
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr ""
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr ""
 
@@ -3832,7 +3812,12 @@ msgstr "Wydany"
 msgid "Total cost"
 msgstr ""
 
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
 msgid "Edit Purchase Order"
 msgstr "Edytuj zamówienie zakupu"
 
@@ -3863,9 +3848,9 @@ msgstr "Wybierz dostawcę części"
 #: part/templates/part/import_wizard/ajax_match_references.html:42
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3929,7 +3914,7 @@ msgstr "Otrzymane elementy"
 msgid "Order Notes"
 msgstr "Notatki zamówień"
 
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
 msgid "Add Order Line"
 msgstr ""
 
@@ -3947,12 +3932,12 @@ msgid "Print packing list"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
 msgid "Complete Sales Order"
 msgstr ""
 
@@ -3961,7 +3946,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2471
 msgid "Customer Reference"
 msgstr ""
 
@@ -3971,7 +3956,7 @@ msgstr ""
 msgid "Completed Shipments"
 msgstr ""
 
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
 msgid "Edit Sales Order"
 msgstr ""
 
@@ -3985,7 +3970,7 @@ msgid "Pending Shipments"
 msgstr "Oczekujące przesyłki"
 
 #: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
 msgid "Actions"
 msgstr "Akcje"
 
@@ -4113,7 +4098,7 @@ msgid "Part Category"
 msgstr "Kategoria komponentu"
 
 #: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
 #: users/models.py:38
 msgid "Part Categories"
 msgstr "Kategorie części"
@@ -4124,7 +4109,7 @@ msgstr "Kategorie części"
 #: part/templates/part/category_sidebar.html:9
 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
 #: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
 #: templates/navbar.html:24 users/models.py:39
 msgid "Parts"
 msgstr "Części"
@@ -4202,7 +4187,7 @@ msgstr ""
 
 #: part/models.py:842 part/templates/part/part_base.html:266
 #: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
 msgid "IPN"
 msgstr ""
 
@@ -4316,7 +4301,7 @@ msgid "Test with this name already exists for this part"
 msgstr ""
 
 #: part/models.py:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
 msgid "Test Name"
 msgstr "Nazwa testu"
 
@@ -4448,7 +4433,7 @@ msgid "BOM quantity for this BOM item"
 msgstr ""
 
 #: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
 #: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr "Opcjonalne"
@@ -4482,7 +4467,7 @@ msgid "BOM line checksum"
 msgstr ""
 
 #: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
 #: templates/js/translated/table_filters.js:68
 #: templates/js/translated/table_filters.js:88
 msgid "Inherited"
@@ -4493,7 +4478,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
 #: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
 msgid "Allow Variants"
 msgstr "Zezwalaj na warianty"
 
@@ -4714,6 +4699,11 @@ msgstr "Utwórz nową część"
 msgid "New Part"
 msgstr "Nowy komponent"
 
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr "Opcje"
+
 #: part/templates/part/category.html:172
 msgid "Set category"
 msgstr "Ustaw kategorię"
@@ -4902,46 +4892,46 @@ msgstr ""
 msgid "Part Suppliers"
 msgstr "Dostawcy Części"
 
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
 msgid "Part Manufacturers"
 msgstr "Producenci części"
 
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
 msgid "Related Part"
 msgstr "Powiązane części"
 
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
 msgid "Add Related Part"
 msgstr "Dodaj powiązaną część"
 
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
@@ -5084,8 +5074,8 @@ msgid "Part is virtual (not a physical part)"
 msgstr "Część jest wirtualna (nie fizyczna)"
 
 #: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
 #: templates/js/translated/model_renderers.js:192
 #: templates/js/translated/part.js:581 templates/js/translated/part.js:658
 msgid "Inactive"
@@ -5101,20 +5091,22 @@ msgstr ""
 msgid "This part is a variant of %(link)s"
 msgstr ""
 
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr "Na stanie"
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr ""
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr "Przypisane do zamówień sprzedaży"
 
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
 msgid "Can Build"
 msgstr ""
 
@@ -5133,7 +5125,7 @@ msgid "Latest Serial Number"
 msgstr "Ostatni numer seryjny"
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr "Szukaj numeru seryjnego"
 
@@ -5172,7 +5164,7 @@ msgid "Total Cost"
 msgstr "Całkowity Koszt"
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
 msgid "No supplier pricing available"
 msgstr "Brak dostępnych cen dostawców"
 
@@ -5293,7 +5285,7 @@ msgstr "Pokaż cenę sprzedaży"
 msgid "Calculation parameters"
 msgstr "Parametry obliczeniowe"
 
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
 msgid "Supplier Cost"
 msgstr "Koszty dostawcy"
 
@@ -5532,7 +5524,7 @@ msgstr ""
 msgid "Barcode associated with Stock Item"
 msgstr ""
 
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
 msgid "Label printing failed"
 msgstr ""
 
@@ -5772,12 +5764,12 @@ msgid "Stock Item Test Report"
 msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr "Numer Seryjny"
 
@@ -5798,7 +5790,7 @@ msgstr "Wynik"
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
 msgid "Date"
 msgstr "Data"
 
@@ -5817,7 +5809,7 @@ msgstr "Zainstalowane elementy"
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2589
 msgid "Serial"
 msgstr "Numer seryjny"
 
@@ -5834,7 +5826,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr ""
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr "Właściciel"
 
@@ -5896,7 +5888,7 @@ msgstr ""
 msgid "Packaging this stock item is stored in"
 msgstr ""
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr "Zainstalowane w"
 
@@ -5936,8 +5928,8 @@ msgstr ""
 msgid "Destination Sales Order"
 msgstr ""
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1816
 msgid "Expiry Date"
 msgstr "Data ważności"
 
@@ -6217,11 +6209,11 @@ msgstr ""
 msgid "Installed Stock Items"
 msgstr ""
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
 msgid "Install Stock Item"
 msgstr ""
 
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
 msgid "Add Test Result"
 msgstr ""
 
@@ -6313,110 +6305,114 @@ msgstr ""
 msgid "Delete stock item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr "poprzednia strona"
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr "następna strona"
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr "Termin minął"
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr "Ostatnia aktualizacja"
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr "Ostatnia inwentaryzacja"
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:244
-msgid "This stock item has not passed all required tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:252
-msgid "This stock item is allocated to Sales Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr "Lokacje nie są ustawione"
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr "Skaner kodów"
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr "Element nadrzędny"
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr "Nie ustawiono producenta"
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr "Testy"
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr ""
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr "Tylko do odczytu"
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:284
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:292
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr "poprzednia strona"
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr "następna strona"
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1693
+msgid "No location set"
+msgstr "Lokacje nie są ustawione"
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr "Testy"
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr "Termin minął"
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1832
+msgid "Last Updated"
+msgstr "Ostatnia aktualizacja"
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr "Ostatnia inwentaryzacja"
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr ""
 
@@ -6488,8 +6484,8 @@ msgstr ""
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:198 users/models.py:40
 msgid "Stock Locations"
 msgstr "Lokacje stanu magazynowego"
 
@@ -6541,7 +6537,7 @@ msgstr ""
 msgid "Child Items"
 msgstr "Elementy podrzędne"
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr ""
 
@@ -6566,55 +6562,55 @@ msgstr ""
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr ""
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr ""
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr "Wróć do stanu magazynowego"
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr ""
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr ""
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr "Usuń wszystkie dane testowe"
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr ""
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr ""
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr ""
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr ""
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr ""
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr ""
 
@@ -7333,9 +7329,9 @@ msgstr "Informacje o wersji InvenTree"
 
 #: templates/about.html:11 templates/about.html:105
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr "Zamknij"
@@ -7607,14 +7603,14 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
 msgid "Required Quantity"
 msgstr "Wymagana ilość"
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
 #: templates/js/translated/part.js:530
 #: templates/js/translated/table_filters.js:178
 msgid "Available"
@@ -7649,67 +7645,67 @@ msgstr "Zdalny serwer musi być dostępny"
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr "Zewnętrzne zdjęcie nie może przekraczać maksymalnego dopuszczalnego rozmiaru pliku"
 
-#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
 msgid "No Response"
 msgstr "Brak odpowiedzi"
 
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
 msgid "No response from the InvenTree server"
 msgstr "Brak odpowiedzi z serwera InvenTree"
 
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
 msgid "Error 400: Bad request"
 msgstr "Błąd 400: Błędne żądanie"
 
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
 msgid "API request returned error code 400"
 msgstr "Żądanie interfejsu API zwróciło kod błędu 400"
 
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
 msgid "Error 401: Not Authenticated"
 msgstr "Błąd 401: Nieuwierzytelniony"
 
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
 msgid "Authentication credentials not supplied"
 msgstr "Dane uwierzytelniające nie zostały dostarczone"
 
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
 msgid "Error 403: Permission Denied"
 msgstr "Błąd 403: Odmowa dostępu"
 
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
 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:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
 msgid "Error 404: Resource Not Found"
 msgstr "Błąd 404: Nie znaleziono zasobu"
 
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
 msgid "The requested resource could not be located on the server"
 msgstr "Żądany zasób nie mógł być zlokalizowany na serwerze"
 
-#: templates/js/translated/api.js:217
+#: templates/js/translated/api.js:262
 msgid "Error 405: Method Not Allowed"
 msgstr "Błąd 405: Metoda nie jest dozwolona"
 
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
 msgid "HTTP method not allowed at URL"
 msgstr "Metoda HTTP nie jest dozwolona pod tym adresem URL"
 
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
 msgid "Error 408: Timeout"
 msgstr "Błąd 408: Przekroczony limit czasu"
 
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
 msgid "Connection timeout while requesting data from server"
 msgstr "Limit czasu połączenia podczas żądania danych z serwera"
 
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
 msgid "Unhandled Error Code"
 msgstr "Nieobsługiwany kod błędu"
 
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
 msgid "Error code"
 msgstr "Kod błędu"
 
@@ -7770,7 +7766,7 @@ msgid "Unknown response from server"
 msgstr "Nieznana odpowiedź serwera"
 
 #: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "Invalid server response"
 msgstr "Niepoprawna odpowiedź serwera"
 
@@ -7852,12 +7848,12 @@ msgid "Download BOM Template"
 msgstr ""
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
 msgid "Format"
 msgstr ""
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr "Wybierz format pliku"
 
@@ -7937,84 +7933,84 @@ msgstr ""
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
 msgid "Load BOM for subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
 msgid "No Stock Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
 msgid "Includes variant and substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
 #: templates/js/translated/part.js:690
 msgid "Includes variant stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
 msgid "Includes substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
 msgid "View BOM"
 msgstr "Zobacz BOM"
 
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -8136,262 +8132,270 @@ msgstr ""
 msgid "Location not specified"
 msgstr ""
 
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
 msgid "No active build outputs found"
 msgstr ""
 
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
 msgid "Allocated Stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
 msgid "No tracked BOM items for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
 msgid "Completed Tests"
 msgstr ""
 
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
 msgid "No required tests for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
 msgid "Edit stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
 msgid "Delete stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
 msgid "Edit Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
 msgid "Remove Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
 msgid "Substitute parts available"
 msgstr ""
 
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
 msgid "Quantity Per"
 msgstr "Ilość za"
 
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
 msgid "Insufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
 msgid "Sufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
 msgid "Allocated"
 msgstr "Przydzielono"
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
 msgid "Build stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
 msgid "Order stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
 msgid "Allocate stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr "Wybierz części"
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
 msgid "You must select at least one part to allocate"
 msgstr ""
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
 msgid "All Parts Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
 msgid "All selected parts have been fully allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
 msgid "Select source location (leave blank to take from all locations)"
 msgstr ""
 
-#: templates/js/translated/build.js:2117
+#: templates/js/translated/build.js:2100
 msgid "Allocate Stock Items to Build Order"
 msgstr ""
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
 msgid "No matching stock locations"
 msgstr ""
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
 msgid "No matching stock items"
 msgstr ""
 
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
 msgid "Automatic Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
 msgstr ""
 
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
 msgid "If a location is specifed, stock will only be allocated from that location"
 msgstr ""
 
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
 msgstr ""
 
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
 msgstr ""
 
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
 msgid "Allocate Stock Items"
 msgstr ""
 
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
 msgid "Select"
 msgstr "Wybierz"
 
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
 msgid "Build order is overdue"
 msgstr ""
 
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
 msgid "Progress"
 msgstr ""
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
 msgid "No user information"
 msgstr "Brak informacji o użytkowniku"
 
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
 msgid "No information"
 msgstr "Brak informacji"
 
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
 msgid "No parts allocated for"
 msgstr ""
 
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
 msgid "Add Manufacturer"
 msgstr "Dodaj producenta"
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
 msgid "Add Manufacturer Part"
 msgstr "Dodaj część producenta"
 
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
 msgid "Edit Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr "Dodaj dostawcę"
 
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
+msgstr "Wszystkie wybrane komponenty dostawcy zostaną usunięte"
+
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:342
 msgid "Add new Company"
 msgstr "Dodaj nową firmę"
 
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr "Usuń parametry"
+
+#: templates/js/translated/company.js:595
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
 #: templates/js/translated/part.js:650
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
 #: templates/js/translated/part.js:654
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
 msgid "No parameters found"
 msgstr "Nie znaleziono parametrów"
 
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
 msgid "Edit parameter"
 msgstr "Edytuj Parametr"
 
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
 msgid "Delete parameter"
 msgstr "Usuń parametr"
 
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
 msgid "Edit Parameter"
 msgstr "Edytuj Parametr"
 
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
 msgid "Delete Parameter"
 msgstr "Usuń parametr"
 
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
 msgid "No supplier parts found"
 msgstr ""
 
@@ -8429,61 +8433,61 @@ msgstr "Wyczyść wszystkie filtry"
 msgid "Create filter"
 msgstr "Utwórz filtr"
 
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
 msgid "Action Prohibited"
 msgstr "Działanie zabronione"
 
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
 msgid "Create operation not allowed"
 msgstr "Operacja utworzenia nie jest dozwolona"
 
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
 msgid "Update operation not allowed"
 msgstr "Operacja aktualizacji nie jest dozwolona"
 
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
 msgid "Delete operation not allowed"
 msgstr "Operacja usuwania nie jest dozwolona"
 
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
 msgid "View operation not allowed"
 msgstr "Operacja przeglądania nie jest dozwolona"
 
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
 msgid "Keep this form open"
 msgstr "Pozostaw ten formularz otwarty"
 
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
 msgid "Enter a valid number"
 msgstr "Wprowadź poprawny numer"
 
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
 #: templates/modals.html:43
 msgid "Form errors exist"
 msgstr "Istnieją błędy formularza"
 
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
 msgid "No results found"
 msgstr "Nie znaleziono wyników"
 
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
 msgid "Searching"
 msgstr "Wyszukiwanie"
 
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
 msgid "Clear input"
 msgstr "Wyczyść wejście"
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "File Column"
 msgstr "Kolumna pliku"
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "Field Name"
 msgstr "Nazwa pola"
 
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
 msgid "Select Columns"
 msgstr "Wybór Kolumn"
 
@@ -8557,62 +8561,62 @@ msgstr ""
 msgid "Select Label Template"
 msgstr "Wybierz szablon etykiety"
 
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
 msgid "Cancel"
 msgstr "Anuluj"
 
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
 #: templates/modals.html:28 templates/modals.html:51
 msgid "Submit"
 msgstr "Zatwierdź"
 
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
 msgid "Form Title"
 msgstr "Tytuł formularza"
 
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
 msgid "Waiting for server..."
 msgstr "Oczekiwanie na serwer..."
 
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
 msgid "Show Error Information"
 msgstr "Pokaż informacje o błędzie"
 
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
 msgid "Accept"
 msgstr "Zaakceptuj"
 
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
 msgid "Loading Data"
 msgstr "Wczytywanie danych"
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Invalid response from server"
 msgstr "Niepoprawna odpowiedź serwera"
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Form data missing from server response"
 msgstr "Brak danych formularza z odpowiedzi serwera"
 
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
 msgid "Error posting form data"
 msgstr "Błąd podczas wysyłania danych formularza"
 
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "JSON response missing form data"
 msgstr "Brak danych w formularzu odpowiedzi JSON"
 
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
 msgid "Error 400: Bad Request"
 msgstr "400: Nieprawidłowe zapytanie"
 
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
 msgid "Server returned error code 400"
 msgstr "Serwer zwrócił kod błędu 400"
 
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
 msgid "Error requesting form data"
 msgstr "Błąd podczas żądania danych formularza"
 
@@ -8670,377 +8674,381 @@ msgstr ""
 msgid "Notifications will load here"
 msgstr ""
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
 msgstr ""
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
 msgstr ""
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr "Oznacz zamówienie jako zakończone?"
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr ""
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr ""
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr ""
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr ""
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr ""
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr ""
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr ""
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr ""
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr ""
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr ""
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
 msgid "Stock Status"
 msgstr ""
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr "Kod zamówienia"
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr "Zamówione"
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr "Ilość do otrzymania"
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr "Potwierdź odbiór elementów"
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
 msgid "Order is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
 msgid "Items"
 msgstr "Przedmioty"
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
 msgid "Duplicate Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
 msgid "Edit Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
 msgid "Delete Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1856
 msgid "No line items found"
 msgstr ""
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
 msgid "Total"
 msgstr "Razem"
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr "Cena jednostkowa"
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
 msgid "Total Price"
 msgstr "Cena całkowita"
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
 msgid "Duplicate line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
 msgid "Edit line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
 msgid "Delete line item"
 msgstr ""
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
 msgid "Duplicate line"
 msgstr ""
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
 msgid "Edit line"
 msgstr ""
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
 msgid "Delete line"
 msgstr ""
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
 msgid "Duplicate Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
 msgid "Edit Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
 msgid "Delete Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2279
 msgid "No matching line"
 msgstr ""
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2392
 msgid "No sales orders found"
 msgstr "Nie znaleziono zamówień sprzedaży"
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2462
 msgid "Invalid Customer"
 msgstr "Nieprawidłowy klient"
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2549
 msgid "Edit shipment"
 msgstr "Edytuj wysyłkę"
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2552
 msgid "Complete shipment"
 msgstr "Kompletna wysyłka"
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2557
 msgid "Delete shipment"
 msgstr "Usuń wysyłkę"
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2577
 msgid "Edit Shipment"
 msgstr "Edytuj wysyłkę"
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2594
 msgid "Delete Shipment"
 msgstr "Usuń wysyłkę"
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2628
 msgid "No matching shipments found"
 msgstr "Nie odnaleziono pasujących przesyłek"
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2638
 msgid "Shipment Reference"
 msgstr "Numer referencyjny przesyłki"
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2662
 msgid "Not shipped"
 msgstr "Nie wysłano"
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2668
 msgid "Tracking"
 msgstr "Śledzenie"
 
-#: templates/js/translated/order.js:2603
+#: templates/js/translated/order.js:2672
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:2841
 msgid "Add Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2892
 msgid "Confirm stock allocation"
 msgstr "Potwierdź przydział zapasów"
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2893
 msgid "Allocate Stock Items to Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:3101
 msgid "No sales order allocations found"
 msgstr ""
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:3182
 msgid "Edit Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:3199
 msgid "Confirm Delete Operation"
 msgstr ""
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:3200
 msgid "Delete Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
 msgid "Shipped to customer"
 msgstr ""
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
 msgid "Stock location not specified"
 msgstr ""
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3623
 msgid "Allocate serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3629
 msgid "Purchase stock"
 msgstr "Cena zakupu"
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
 msgid "Calculate price"
 msgstr "Oblicz cenę"
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3648
 msgid "Cannot be deleted as items have been shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3651
 msgid "Cannot be deleted as items have been allocated"
 msgstr ""
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3733
 msgid "Allocate Serial Numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3842
 msgid "Update Unit Price"
 msgstr "Zaktualizuj cenę jednostkową"
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3856
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:4092
 msgid "No matching lines"
 msgstr ""
 
@@ -9222,7 +9230,7 @@ msgid "No category"
 msgstr "Brak kategorii"
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2238
 msgid "Display as list"
 msgstr "Wyświetl jako listę"
 
@@ -9230,7 +9238,7 @@ msgstr "Wyświetl jako listę"
 msgid "Display as grid"
 msgstr "Wyświetl jako siatkę"
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
 msgid "Display as tree"
 msgstr "Wyświetl jako drzewo"
 
@@ -9238,7 +9246,7 @@ msgstr "Wyświetl jako drzewo"
 msgid "Subscribed category"
 msgstr "Obserwowana kategoria"
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
 msgid "Path"
 msgstr "Ścieżka"
 
@@ -9246,12 +9254,12 @@ msgstr "Ścieżka"
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
 msgid "Delete test result"
 msgstr ""
 
@@ -9372,11 +9380,11 @@ msgstr ""
 msgid "Sales Order(s) must be selected before printing report"
 msgstr ""
 
-#: templates/js/translated/search.js:307
+#: templates/js/translated/search.js:352
 msgid "Minimize results"
 msgstr ""
 
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:355
 msgid "Remove results"
 msgstr ""
 
@@ -9536,204 +9544,204 @@ msgstr ""
 msgid "Confirm stock adjustment"
 msgstr ""
 
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
 msgid "PASS"
 msgstr ""
 
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
 msgid "FAIL"
 msgstr ""
 
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
 msgid "NO RESULT"
 msgstr "BRAK WYNIKÓW"
 
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
 msgid "Pass test"
 msgstr ""
 
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
 msgid "Add test result"
 msgstr "Dodaj wynik testu"
 
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
 msgid "No test results found"
 msgstr ""
 
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
 msgid "Test Date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
 msgid "Edit Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
 msgid "Delete Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
 msgid "In production"
 msgstr "W produkcji"
 
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
 msgid "Installed in Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
 msgid "Assigned to Sales Order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
 msgid "No stock location set"
 msgstr ""
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1712
 msgid "Stock item is in production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1717
 msgid "Stock item assigned to sales order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1720
 msgid "Stock item assigned to customer"
 msgstr ""
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr ""
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr ""
-
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
 msgid "Serialized stock item has been allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
 msgid "Stock item has been fully allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
 msgid "Stock item has been partially allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1730
 msgid "Stock item has been installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1734
+msgid "Stock item has expired"
+msgstr ""
+
+#: templates/js/translated/stock.js:1736
+msgid "Stock item will expire soon"
+msgstr ""
+
+#: templates/js/translated/stock.js:1743
 msgid "Stock item has been rejected"
 msgstr ""
 
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1745
 msgid "Stock item is lost"
 msgstr ""
 
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1747
 msgid "Stock item is destroyed"
 msgstr ""
 
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1751
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr ""
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1802
 msgid "Stocktake"
 msgstr ""
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1884
 msgid "Supplier part not specified"
 msgstr ""
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1922
 msgid "No stock items matching query"
 msgstr ""
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2095
 msgid "Set Stock Status"
 msgstr ""
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2109
 msgid "Select Status Code"
 msgstr ""
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2110
 msgid "Status code must be selected"
 msgstr "Kod statusu musi być wybrany"
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2365
 msgid "Details"
 msgstr "Szczegóły"
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2381
 msgid "Part information unavailable"
 msgstr ""
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2403
 msgid "Location no longer exists"
 msgstr "Lokalizacja już nie istnieje"
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2422
 msgid "Purchase order no longer exists"
 msgstr "Zamówienie zakupu już nie istnieje"
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
 msgid "Customer no longer exists"
 msgstr "Klient już nie istnieje"
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2459
 msgid "Stock item no longer exists"
 msgstr "Element magazynowy już nie istnieje"
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2482
 msgid "Added"
 msgstr "Dodano"
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2490
 msgid "Removed"
 msgstr "Usunięto"
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2566
 msgid "No installed items"
 msgstr ""
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
 msgid "Uninstall Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2666
 msgid "Select stock item to uninstall"
 msgstr ""
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2687
 msgid "Install another stock item into this item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2688
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr ""
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2690
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2691
 msgid "The Stock Item is currently available in stock"
 msgstr ""
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2692
 msgid "The Stock Item is not already installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2693
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr ""
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2706
 msgid "Select part to install"
 msgstr ""
 
@@ -9965,69 +9973,81 @@ msgstr ""
 msgid "Purchasable"
 msgstr "Możliwość zakupu"
 
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr "Pokaż widok kalendarza"
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr "Pokaż widok listy"
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
 msgid "Export Table Data"
 msgstr "Eksportuj dane tabeli"
 
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
 msgid "Select File Format"
 msgstr "Wybierz format pliku"
 
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
 msgid "Loading data"
 msgstr "Wczytywanie danych"
 
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
 msgid "rows per page"
 msgstr "wierszy na stronę"
 
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
 msgid "Showing all rows"
 msgstr "Pokaż wszystkie wiersze"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "Showing"
 msgstr "Pokazywane"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "to"
 msgstr "do"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "of"
 msgstr "z"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "rows"
 msgstr "wierszy"
 
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
 #: templates/search.html:8 templates/search_form.html:6
 #: templates/search_form.html:7
 msgid "Search"
 msgstr "Szukaj"
 
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
 msgid "No matching results"
 msgstr "Brak pasujących wyników"
 
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
 msgid "Hide/Show pagination"
 msgstr "Ukryj/Pokaż stronicowanie"
 
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
 msgid "Refresh"
 msgstr "Odśwież"
 
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
 msgid "Toggle"
 msgstr "Przełącz"
 
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
 msgid "Columns"
 msgstr "Kolumny"
 
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
 msgid "All"
 msgstr "Wszystkie"
 
diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po
index 570408ab3d..671df18702 100644
--- a/InvenTree/locale/pt/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pt/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
-"PO-Revision-Date: 2022-05-24 01:42\n"
+"POT-Creation-Date: 2022-05-28 23:41+0000\n"
+"PO-Revision-Date: 2022-05-29 01:47\n"
 "Last-Translator: \n"
 "Language-Team: Portuguese, Brazilian\n"
 "Language: pt_BR\n"
@@ -21,7 +21,7 @@ msgstr ""
 msgid "API endpoint not found"
 msgstr "API endpoint não encontrado"
 
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
 msgid "Error details can be found in the admin panel"
 msgstr ""
 
@@ -30,7 +30,7 @@ msgid "Enter date"
 msgstr "Insira uma Data"
 
 #: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
 msgid "Confirm"
 msgstr "Confirmar"
 
@@ -79,7 +79,7 @@ msgstr ""
 msgid "Duplicate serial: {sn}"
 msgstr ""
 
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
 msgid "Invalid quantity provided"
 msgstr ""
 
@@ -134,10 +134,12 @@ msgid "Select file to attach"
 msgstr ""
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:139 order/models.py:1273
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr ""
 
@@ -159,7 +161,7 @@ msgstr ""
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2513
 msgid "User"
 msgstr ""
 
@@ -205,9 +207,10 @@ msgstr ""
 #: templates/InvenTree/settings/plugin.html:132
 #: templates/InvenTree/settings/plugin_settings.html:23
 #: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2283
 msgid "Name"
 msgstr ""
 
@@ -216,22 +219,22 @@ msgstr ""
 #: company/models.py:575 company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
 #: part/templates/part/part_base.html:167
 #: part/templates/part/set_category.html:14 report/models.py:182
 #: report/models.py:547 report/models.py:586
 #: report/templates/report/inventree_build_order_base.html:118
 #: stock/templates/stock/location.html:103
 #: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
 msgid "Description"
 msgstr ""
 
@@ -406,7 +409,7 @@ msgid "InvenTree system health checks failed"
 msgstr ""
 
 #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
 msgid "Pending"
 msgstr ""
 
@@ -414,141 +417,145 @@ msgstr ""
 msgid "Placed"
 msgstr ""
 
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
 #: order/templates/order/order_base.html:134
 #: order/templates/order/sales_order_base.html:133
 msgid "Complete"
 msgstr ""
 
 #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
 msgid "Cancelled"
 msgstr ""
 
 #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
 msgid "Lost"
 msgstr ""
 
 #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
 msgid "Returned"
 msgstr ""
 
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
 msgid "Shipped"
 msgstr ""
 
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
 msgid "OK"
 msgstr ""
 
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
 msgid "Attention needed"
 msgstr ""
 
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
 msgid "Damaged"
 msgstr ""
 
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
 msgid "Destroyed"
 msgstr ""
 
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
 msgid "Rejected"
 msgstr ""
 
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
 msgid "Legacy stock tracking entry"
 msgstr ""
 
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
 msgid "Stock item created"
 msgstr ""
 
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
 msgid "Edited stock item"
 msgstr ""
 
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
 msgid "Assigned serial number"
 msgstr ""
 
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
 msgid "Stock counted"
 msgstr ""
 
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
 msgid "Stock manually added"
 msgstr ""
 
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
 msgid "Stock manually removed"
 msgstr ""
 
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
 msgid "Location changed"
 msgstr ""
 
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
 msgid "Installed into assembly"
 msgstr ""
 
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
 msgid "Removed from assembly"
 msgstr ""
 
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
 msgid "Installed component item"
 msgstr ""
 
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
 msgid "Removed component item"
 msgstr ""
 
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
 msgid "Split from parent item"
 msgstr ""
 
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
 msgid "Merged stock items"
 msgstr ""
 
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
 msgid "Converted to variant"
 msgstr ""
 
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
 msgid "Sent to customer"
 msgstr ""
 
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
 msgid "Returned from customer"
 msgstr ""
 
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
 msgid "Build order output created"
 msgstr ""
 
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
 msgid "Build order output completed"
 msgstr ""
 
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
 msgid "Consumed by build order"
 msgstr ""
 
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
 msgid "Received against purchase order"
 msgstr ""
 
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
 msgid "Production"
 msgstr ""
 
@@ -637,15 +644,15 @@ msgstr ""
 msgid "Build Order Reference"
 msgstr ""
 
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
 #: part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
 msgid "Reference"
 msgstr ""
 
@@ -664,7 +671,7 @@ msgstr ""
 
 #: build/models.py:225 build/templates/build/build_base.html:77
 #: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
 #: part/models.py:2303 part/models.py:2319 part/models.py:2338
 #: part/models.py:2355 part/models.py:2457 part/models.py:2579
 #: part/models.py:2669 part/models.py:2760 part/models.py:3050
@@ -679,19 +686,21 @@ msgstr ""
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
 #: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
 msgid "Part"
 msgstr ""
 
@@ -708,7 +717,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr ""
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
 msgid "Source Location"
 msgstr ""
 
@@ -749,7 +758,7 @@ msgid "Build status code"
 msgstr ""
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr ""
 
@@ -757,12 +766,12 @@ msgstr ""
 msgid "Batch code for this build output"
 msgstr ""
 
-#: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
 msgid "Creation Date"
 msgstr ""
 
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
 msgid "Target completion date"
 msgstr ""
 
@@ -770,8 +779,8 @@ msgstr ""
 msgid "Target date for build completion. Build will be overdue after this date."
 msgstr ""
 
-#: build/models.py:300 order/models.py:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
 msgid "Completion Date"
 msgstr ""
 
@@ -779,7 +788,7 @@ msgstr ""
 msgid "completed by"
 msgstr ""
 
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
 msgid "Issued by"
 msgstr ""
 
@@ -788,11 +797,11 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
 msgid "Responsible"
 msgstr ""
 
@@ -804,14 +813,14 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr ""
 
 #: build/models.py:334 build/serializers.py:390
 #: build/templates/build/sidebar.html:21 company/models.py:134
 #: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
 #: order/templates/order/po_sidebar.html:11
 #: order/templates/order/so_sidebar.html:17 part/models.py:983
 #: part/templates/part/part_sidebar.html:59
@@ -820,11 +829,11 @@ msgstr ""
 #: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
 msgid "Notes"
 msgstr ""
 
@@ -857,7 +866,7 @@ msgstr ""
 msgid "Stock item is over-allocated"
 msgstr ""
 
-#: build/models.py:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1413
 msgid "Allocation quantity must be greater than zero"
 msgstr ""
 
@@ -869,8 +878,8 @@ msgstr ""
 msgid "Selected stock item not found in BOM"
 msgstr ""
 
-#: build/models.py:1375 stock/templates/stock/item_base.html:335
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
 #: templates/navbar.html:38
 msgid "Build"
 msgstr ""
@@ -879,18 +888,18 @@ msgstr ""
 msgid "Build to allocate parts"
 msgstr ""
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2449
 msgid "Stock Item"
 msgstr ""
 
@@ -902,10 +911,10 @@ msgstr ""
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_build_order_base.html:114
@@ -913,25 +922,24 @@ 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
 msgid "Quantity"
 msgstr ""
 
@@ -948,7 +956,7 @@ msgid "Destination stock item"
 msgstr ""
 
 #: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
 msgid "Build Output"
 msgstr ""
 
@@ -972,7 +980,7 @@ msgstr ""
 msgid "Enter quantity for build output"
 msgstr ""
 
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
 #: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
 #: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
 #: stock/serializers.py:294
@@ -987,8 +995,8 @@ msgstr ""
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr ""
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr ""
@@ -1015,15 +1023,15 @@ msgstr ""
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
 msgid "Location"
 msgstr ""
 
@@ -1032,12 +1040,12 @@ msgid "Location for completed build outputs"
 msgstr ""
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: build/templates/build/detail.html:62 order/models.py:663
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
 msgid "Status"
 msgstr ""
 
@@ -1118,7 +1126,7 @@ msgstr ""
 msgid "Item must be in stock"
 msgstr ""
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr ""
@@ -1135,7 +1143,7 @@ msgstr ""
 msgid "This stock item has already been allocated to this build output"
 msgstr ""
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr ""
 
@@ -1233,13 +1241,13 @@ msgid "Stock has not been fully allocated to this Build Order"
 msgstr ""
 
 #: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr ""
 
@@ -1266,14 +1274,14 @@ msgid "Completed"
 msgstr ""
 
 #: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2436
 msgid "Sales Order"
 msgstr ""
 
@@ -1308,8 +1316,8 @@ msgstr ""
 msgid "Stock can be taken from any available location."
 msgstr ""
 
-#: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
 msgid "Destination"
 msgstr ""
 
@@ -1322,11 +1330,11 @@ msgid "Allocated Parts"
 msgstr ""
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
-#: templates/js/translated/build.js:1184
+#: stock/templates/stock/item_base.html:170
+#: templates/js/translated/build.js:1179
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1335,7 +1343,7 @@ msgstr ""
 #: build/templates/build/detail.html:126
 #: order/templates/order/order_base.html:149
 #: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
 msgid "Created"
 msgstr ""
 
@@ -1355,7 +1363,7 @@ msgstr ""
 msgid "Allocate Stock to Build"
 msgstr ""
 
-#: build/templates/build/detail.html:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
 msgid "Unallocate stock"
 msgstr ""
 
@@ -1385,8 +1393,8 @@ msgstr ""
 
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: company/templates/company/detail.html:85
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr ""
 
@@ -1461,8 +1469,8 @@ msgid "Completed Build Outputs"
 msgstr ""
 
 #: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
 #: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:82
 #: order/templates/order/sales_order_detail.html:129
@@ -1476,11 +1484,11 @@ msgstr ""
 msgid "Build Notes"
 msgstr ""
 
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
 msgid "Allocation Complete"
 msgstr ""
 
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
@@ -1492,18 +1500,6 @@ msgstr ""
 msgid "Print Build Orders"
 msgstr ""
 
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr ""
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr ""
-
 #: build/templates/build/sidebar.html:5
 msgid "Build Order Details"
 msgstr ""
@@ -1727,7 +1723,7 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
 #: templates/js/translated/table_filters.js:168
 #: templates/js/translated/table_filters.js:460
 msgid "Assembly"
@@ -2413,7 +2409,7 @@ msgid "Price break quantity"
 msgstr ""
 
 #: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: company/templates/company/supplier_part.html:263 order/models.py:975
 #: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
 msgid "Price"
 msgstr ""
@@ -2556,7 +2552,7 @@ msgstr ""
 
 #: company/models.py:104 company/templates/company/company_base.html:100
 #: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
 msgid "Website"
 msgstr ""
 
@@ -2651,10 +2647,11 @@ msgstr ""
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: stock/templates/stock/item_base.html:212
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
 #: templates/js/translated/table_filters.js:411
 msgid "Manufacturer"
 msgstr ""
@@ -2665,8 +2662,10 @@ msgstr ""
 
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr ""
@@ -2686,7 +2685,7 @@ msgstr ""
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr ""
 
@@ -2696,8 +2695,9 @@ msgstr ""
 
 #: company/models.py:427
 #: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
 msgid "Value"
 msgstr ""
 
@@ -2708,7 +2708,7 @@ msgstr ""
 #: company/models.py:434 part/models.py:940 part/models.py:2549
 #: part/templates/part/part_base.html:280
 #: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
 msgid "Units"
 msgstr ""
 
@@ -2721,11 +2721,12 @@ msgid "Linked manufacturer part must reference the same base part"
 msgstr ""
 
 #: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: stock/templates/stock/item_base.html:229
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2736,8 +2737,9 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
 msgid "SKU"
 msgstr ""
 
@@ -2773,8 +2775,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr ""
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
 msgid "Packaging"
 msgstr ""
 
@@ -2804,12 +2806,12 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
 msgid "Company"
 msgstr ""
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr ""
 
@@ -2822,7 +2824,7 @@ msgid "Edit company information"
 msgstr ""
 
 #: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
 msgid "Edit Company"
 msgstr ""
 
@@ -2845,12 +2847,12 @@ msgstr ""
 msgid "Download image from URL"
 msgstr ""
 
-#: company/templates/company/company_base.html:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr ""
@@ -2869,7 +2871,7 @@ msgid "Upload Image"
 msgstr ""
 
 #: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
+#: company/templates/company/manufacturer_part_sidebar.html:7
 #: templates/InvenTree/search.html:118
 msgid "Supplier Parts"
 msgstr ""
@@ -2884,28 +2886,19 @@ msgstr ""
 msgid "New Supplier Part"
 msgstr ""
 
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr ""
-
 #: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
 #: part/templates/part/category.html:176
 msgid "Order parts"
 msgstr ""
 
 #: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
 msgid "Delete parts"
 msgstr ""
 
 #: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
 msgid "Delete Parts"
 msgstr ""
 
@@ -2917,88 +2910,76 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
 msgid "New Manufacturer Part"
 msgstr ""
 
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
 msgid "Supplier Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
 #: company/templates/company/sidebar.html:12
 #: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
 #: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:235 templates/navbar.html:50
 #: users/models.py:43
 msgid "Purchase Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
 #: order/templates/order/purchase_orders.html:17
 msgid "Create new purchase order"
 msgstr ""
 
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr ""
 
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
 #: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
 #: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
 #: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:259 templates/navbar.html:61
 #: users/models.py:44
 msgid "Sales Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
 #: order/templates/order/sales_orders.html:20
 msgid "Create new sales order"
 msgstr ""
 
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
 #: order/templates/order/sales_orders.html:21
 msgid "New Sales Order"
 msgstr ""
 
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
 msgid "Assigned Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
 msgid "Company Notes"
 msgstr ""
 
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr ""
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr ""
-
 #: company/templates/company/index.html:8
 msgid "Supplier List"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
 #: templates/navbar.html:49
 msgid "Manufacturers"
 msgstr ""
@@ -3011,12 +2992,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -3032,55 +3013,46 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:119
 #: company/templates/company/supplier_part.html:15 company/views.py:41
 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
 msgid "Suppliers"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
 #: part/templates/part/detail.html:363
 msgid "Delete supplier parts"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
 msgid "Delete"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:164
+#: company/templates/company/manufacturer_part.html:166
 #: company/templates/company/manufacturer_part_sidebar.html:5
 #: part/templates/part/category_sidebar.html:19
 #: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8
 msgid "Parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
 #: part/templates/part/detail.html:184
 #: templates/InvenTree/settings/category.html:12
 #: templates/InvenTree/settings/part.html:66
 msgid "New Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
 msgid "Delete parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
 msgid "Add Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr ""
-
 #: company/templates/company/sidebar.html:6
 msgid "Manufactured Parts"
 msgstr ""
@@ -3099,19 +3071,19 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
 msgid "Delete supplier part"
 msgstr ""
 
@@ -3186,11 +3158,11 @@ msgstr ""
 #: part/templates/part/part_sidebar.html:14
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
 #: templates/InvenTree/settings/sidebar.html:43
 #: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
 #: templates/navbar.html:31
 msgid "Stock"
 msgstr ""
@@ -3216,8 +3188,8 @@ msgstr ""
 #: stock/templates/stock/location.html:161
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
+#: templates/js/translated/stock.js:2307 users/models.py:41
 msgid "Stock Items"
 msgstr ""
 
@@ -3229,7 +3201,7 @@ msgstr ""
 msgid "New Manufacturer"
 msgstr ""
 
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
 #: templates/navbar.html:60
 msgid "Customers"
 msgstr ""
@@ -3238,7 +3210,7 @@ msgstr ""
 msgid "New Customer"
 msgstr ""
 
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:212
 msgid "Companies"
 msgstr ""
 
@@ -3328,305 +3300,313 @@ msgstr ""
 msgid "Part query filters (comma-separated value of key=value pairs)"
 msgstr ""
 
-#: order/models.py:130
+#: order/models.py:137
 msgid "Order description"
 msgstr ""
 
-#: order/models.py:132
+#: order/models.py:139 order/models.py:1274
 msgid "Link to external page"
 msgstr ""
 
-#: order/models.py:140
+#: order/models.py:147
 msgid "Created By"
 msgstr ""
 
-#: order/models.py:147
+#: order/models.py:154
 msgid "User or group responsible for this order"
 msgstr ""
 
-#: order/models.py:152
+#: order/models.py:159
 msgid "Order notes"
 msgstr ""
 
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
 msgid "Order reference"
 msgstr ""
 
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
 msgid "Purchase order status"
 msgstr ""
 
-#: order/models.py:253
+#: order/models.py:311
 msgid "Company from which the items are being ordered"
 msgstr ""
 
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
 msgid "Supplier Reference"
 msgstr ""
 
-#: order/models.py:256
+#: order/models.py:314
 msgid "Supplier order reference code"
 msgstr ""
 
-#: order/models.py:263
+#: order/models.py:321
 msgid "received by"
 msgstr ""
 
-#: order/models.py:268
+#: order/models.py:326
 msgid "Issue Date"
 msgstr ""
 
-#: order/models.py:269
+#: order/models.py:327
 msgid "Date order was issued"
 msgstr ""
 
-#: order/models.py:274
+#: order/models.py:332
 msgid "Target Delivery Date"
 msgstr ""
 
-#: order/models.py:275
+#: order/models.py:333
 msgid "Expected date for order delivery. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:281
+#: order/models.py:339
 msgid "Date order was completed"
 msgstr ""
 
-#: order/models.py:310
+#: order/models.py:368
 msgid "Part supplier must match PO supplier"
 msgstr ""
 
-#: order/models.py:456
+#: order/models.py:514
 msgid "Quantity must be a positive number"
 msgstr ""
 
-#: order/models.py:601
+#: order/models.py:659
 msgid "Company to which the items are being sold"
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer Reference "
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer order reference code"
 msgstr ""
 
-#: order/models.py:612
+#: order/models.py:670
 msgid "Target date for order completion. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
 msgid "Shipment Date"
 msgstr ""
 
-#: order/models.py:622
+#: order/models.py:680
 msgid "shipped by"
 msgstr ""
 
-#: order/models.py:688
+#: order/models.py:746
 msgid "Order cannot be completed as no parts have been assigned"
 msgstr ""
 
-#: order/models.py:692
+#: order/models.py:750
 msgid "Only a pending order can be marked as complete"
 msgstr ""
 
-#: order/models.py:695
+#: order/models.py:753
 msgid "Order cannot be completed as there are incomplete shipments"
 msgstr ""
 
-#: order/models.py:698
+#: order/models.py:756
 msgid "Order cannot be completed as there are incomplete line items"
 msgstr ""
 
-#: order/models.py:878
+#: order/models.py:936
 msgid "Item quantity"
 msgstr ""
 
-#: order/models.py:884
+#: order/models.py:942
 msgid "Line item reference"
 msgstr ""
 
-#: order/models.py:886
+#: order/models.py:944
 msgid "Line item notes"
 msgstr ""
 
-#: order/models.py:891
+#: order/models.py:949
 msgid "Target shipping date for this line item"
 msgstr ""
 
-#: order/models.py:909
+#: order/models.py:967
 msgid "Context"
 msgstr ""
 
-#: order/models.py:910
+#: order/models.py:968
 msgid "Additional context for this line"
 msgstr ""
 
-#: order/models.py:918
+#: order/models.py:976
 msgid "Unit price"
 msgstr ""
 
-#: order/models.py:951
+#: order/models.py:1009
 msgid "Supplier part must match supplier"
 msgstr ""
 
-#: order/models.py:958
+#: order/models.py:1016
 msgid "deleted"
 msgstr ""
 
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
 msgid "Order"
 msgstr ""
 
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
 msgid "Purchase Order"
 msgstr ""
 
-#: order/models.py:984
+#: order/models.py:1042
 msgid "Supplier part"
 msgstr ""
 
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
 msgstr ""
 
-#: order/models.py:992
+#: order/models.py:1050
 msgid "Number of items received"
 msgstr ""
 
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1900
 msgid "Purchase Price"
 msgstr ""
 
-#: order/models.py:1000
+#: order/models.py:1058
 msgid "Unit purchase price"
 msgstr ""
 
-#: order/models.py:1008
+#: order/models.py:1066
 msgid "Where does the Purchaser want this item to be stored?"
 msgstr ""
 
-#: order/models.py:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
 #: part/templates/part/prices.html:119 part/templates/part/prices.html:288
 msgid "Sale Price"
 msgstr ""
 
-#: order/models.py:1079
+#: order/models.py:1137
 msgid "Unit sale price"
 msgstr ""
 
-#: order/models.py:1084
+#: order/models.py:1142
 msgid "Shipped quantity"
 msgstr ""
 
-#: order/models.py:1171
+#: order/models.py:1229
 msgid "Date of shipment"
 msgstr ""
 
-#: order/models.py:1178
+#: order/models.py:1236
 msgid "Checked By"
 msgstr ""
 
-#: order/models.py:1179
+#: order/models.py:1237
 msgid "User who checked this shipment"
 msgstr ""
 
-#: order/models.py:1187
+#: order/models.py:1245
 msgid "Shipment number"
 msgstr ""
 
-#: order/models.py:1194
+#: order/models.py:1252
 msgid "Shipment notes"
 msgstr ""
 
-#: order/models.py:1201
+#: order/models.py:1259
 msgid "Tracking Number"
 msgstr ""
 
-#: order/models.py:1202
+#: order/models.py:1260
 msgid "Shipment tracking information"
 msgstr ""
 
-#: order/models.py:1213
+#: order/models.py:1267
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1268
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1285
 msgid "Shipment has already been sent"
 msgstr ""
 
-#: order/models.py:1216
+#: order/models.py:1288
 msgid "Shipment has no allocated stock items"
 msgstr ""
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1395 order/models.py:1397
 msgid "Stock item has not been assigned"
 msgstr ""
 
-#: order/models.py:1317
+#: order/models.py:1401
 msgid "Cannot allocate stock item to a line with a different part"
 msgstr ""
 
-#: order/models.py:1319
+#: order/models.py:1403
 msgid "Cannot allocate stock to a line without a part"
 msgstr ""
 
-#: order/models.py:1322
+#: order/models.py:1406
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr ""
 
-#: order/models.py:1326
+#: order/models.py:1410
 msgid "StockItem is over-allocated"
 msgstr ""
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1416 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr ""
 
-#: order/models.py:1335
+#: order/models.py:1419
 msgid "Sales order does not match shipment"
 msgstr ""
 
-#: order/models.py:1336
+#: order/models.py:1420
 msgid "Shipment does not match sales order"
 msgstr ""
 
-#: order/models.py:1344
+#: order/models.py:1428
 msgid "Line"
 msgstr ""
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr ""
 
-#: order/models.py:1353
+#: order/models.py:1437
 msgid "Sales order shipment reference"
 msgstr ""
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr ""
 
-#: order/models.py:1366
+#: order/models.py:1450
 msgid "Select stock item to allocate"
 msgstr ""
 
-#: order/models.py:1369
+#: order/models.py:1453
 msgid "Enter stock allocation quantity"
 msgstr ""
 
@@ -3662,7 +3642,7 @@ msgstr ""
 msgid "Purchase order must match supplier"
 msgstr ""
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr ""
 
@@ -3674,11 +3654,11 @@ msgstr ""
 msgid "Select destination location for received items"
 msgstr ""
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr ""
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr ""
 
@@ -3714,35 +3694,35 @@ msgstr ""
 msgid "Sale price currency"
 msgstr ""
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr ""
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr ""
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr ""
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr ""
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr ""
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr ""
 
@@ -3832,7 +3812,12 @@ msgstr ""
 msgid "Total cost"
 msgstr ""
 
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
 msgid "Edit Purchase Order"
 msgstr ""
 
@@ -3863,9 +3848,9 @@ msgstr ""
 #: part/templates/part/import_wizard/ajax_match_references.html:42
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3929,7 +3914,7 @@ msgstr ""
 msgid "Order Notes"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
 msgid "Add Order Line"
 msgstr ""
 
@@ -3947,12 +3932,12 @@ msgid "Print packing list"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
 msgid "Complete Sales Order"
 msgstr ""
 
@@ -3961,7 +3946,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2471
 msgid "Customer Reference"
 msgstr ""
 
@@ -3971,7 +3956,7 @@ msgstr ""
 msgid "Completed Shipments"
 msgstr ""
 
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
 msgid "Edit Sales Order"
 msgstr ""
 
@@ -3985,7 +3970,7 @@ msgid "Pending Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
 msgid "Actions"
 msgstr ""
 
@@ -4113,7 +4098,7 @@ msgid "Part Category"
 msgstr ""
 
 #: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
 #: users/models.py:38
 msgid "Part Categories"
 msgstr ""
@@ -4124,7 +4109,7 @@ msgstr ""
 #: part/templates/part/category_sidebar.html:9
 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
 #: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
 #: templates/navbar.html:24 users/models.py:39
 msgid "Parts"
 msgstr ""
@@ -4202,7 +4187,7 @@ msgstr ""
 
 #: part/models.py:842 part/templates/part/part_base.html:266
 #: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
 msgid "IPN"
 msgstr ""
 
@@ -4316,7 +4301,7 @@ msgid "Test with this name already exists for this part"
 msgstr ""
 
 #: part/models.py:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
 msgid "Test Name"
 msgstr ""
 
@@ -4448,7 +4433,7 @@ msgid "BOM quantity for this BOM item"
 msgstr ""
 
 #: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
 #: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
@@ -4482,7 +4467,7 @@ msgid "BOM line checksum"
 msgstr ""
 
 #: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
 #: templates/js/translated/table_filters.js:68
 #: templates/js/translated/table_filters.js:88
 msgid "Inherited"
@@ -4493,7 +4478,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
 #: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
 msgid "Allow Variants"
 msgstr ""
 
@@ -4714,6 +4699,11 @@ msgstr ""
 msgid "New Part"
 msgstr ""
 
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr ""
+
 #: part/templates/part/category.html:172
 msgid "Set category"
 msgstr ""
@@ -4902,46 +4892,46 @@ msgstr ""
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
 msgid "Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
 msgid "Add Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
@@ -5084,8 +5074,8 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
 #: templates/js/translated/model_renderers.js:192
 #: templates/js/translated/part.js:581 templates/js/translated/part.js:658
 msgid "Inactive"
@@ -5101,20 +5091,22 @@ msgstr ""
 msgid "This part is a variant of %(link)s"
 msgstr ""
 
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr ""
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr ""
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
 msgid "Can Build"
 msgstr ""
 
@@ -5133,7 +5125,7 @@ msgid "Latest Serial Number"
 msgstr ""
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr ""
 
@@ -5172,7 +5164,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -5291,7 +5283,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
 msgid "Supplier Cost"
 msgstr ""
 
@@ -5530,7 +5522,7 @@ msgstr ""
 msgid "Barcode associated with Stock Item"
 msgstr ""
 
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
 msgid "Label printing failed"
 msgstr ""
 
@@ -5770,12 +5762,12 @@ msgid "Stock Item Test Report"
 msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr ""
 
@@ -5796,7 +5788,7 @@ msgstr ""
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
 msgid "Date"
 msgstr ""
 
@@ -5815,7 +5807,7 @@ msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2589
 msgid "Serial"
 msgstr ""
 
@@ -5832,7 +5824,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr ""
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr ""
 
@@ -5894,7 +5886,7 @@ msgstr ""
 msgid "Packaging this stock item is stored in"
 msgstr ""
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr ""
 
@@ -5934,8 +5926,8 @@ msgstr ""
 msgid "Destination Sales Order"
 msgstr ""
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1816
 msgid "Expiry Date"
 msgstr ""
 
@@ -6215,11 +6207,11 @@ msgstr ""
 msgid "Installed Stock Items"
 msgstr ""
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
 msgid "Install Stock Item"
 msgstr ""
 
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
 msgid "Add Test Result"
 msgstr ""
 
@@ -6311,110 +6303,114 @@ msgstr ""
 msgid "Delete stock item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:244
-msgid "This stock item has not passed all required tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:252
-msgid "This stock item is allocated to Sales Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr ""
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:284
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:292
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1693
+msgid "No location set"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1832
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr ""
 
@@ -6486,8 +6482,8 @@ msgstr ""
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:198 users/models.py:40
 msgid "Stock Locations"
 msgstr ""
 
@@ -6539,7 +6535,7 @@ msgstr ""
 msgid "Child Items"
 msgstr ""
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr ""
 
@@ -6564,55 +6560,55 @@ msgstr ""
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr ""
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr ""
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr ""
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr ""
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr ""
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr ""
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr ""
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr ""
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr ""
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr ""
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr ""
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr ""
 
@@ -7331,9 +7327,9 @@ msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr ""
@@ -7602,14 +7598,14 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
 #: templates/js/translated/part.js:530
 #: templates/js/translated/table_filters.js:178
 msgid "Available"
@@ -7644,67 +7640,67 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
-#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
 msgid "No Response"
 msgstr ""
 
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
 msgid "No response from the InvenTree server"
 msgstr ""
 
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
 msgid "Error 400: Bad request"
 msgstr ""
 
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
 msgid "API request returned error code 400"
 msgstr ""
 
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
 msgid "Error 401: Not Authenticated"
 msgstr ""
 
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
 msgid "Authentication credentials not supplied"
 msgstr ""
 
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
 msgid "Error 403: Permission Denied"
 msgstr ""
 
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
 msgid "You do not have the required permissions to access this function"
 msgstr ""
 
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
 msgid "Error 404: Resource Not Found"
 msgstr ""
 
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
 msgid "The requested resource could not be located on the server"
 msgstr ""
 
-#: templates/js/translated/api.js:217
+#: templates/js/translated/api.js:262
 msgid "Error 405: Method Not Allowed"
 msgstr ""
 
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
 msgid "HTTP method not allowed at URL"
 msgstr ""
 
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
 msgid "Error 408: Timeout"
 msgstr ""
 
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
 msgid "Connection timeout while requesting data from server"
 msgstr ""
 
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
 msgid "Unhandled Error Code"
 msgstr ""
 
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
 msgid "Error code"
 msgstr ""
 
@@ -7765,7 +7761,7 @@ msgid "Unknown response from server"
 msgstr ""
 
 #: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "Invalid server response"
 msgstr ""
 
@@ -7847,12 +7843,12 @@ msgid "Download BOM Template"
 msgstr ""
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
 msgid "Format"
 msgstr ""
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr ""
 
@@ -7932,84 +7928,84 @@ msgstr ""
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
 msgid "Load BOM for subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
 msgid "No Stock Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
 msgid "Includes variant and substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
 #: templates/js/translated/part.js:690
 msgid "Includes variant stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
 msgid "Includes substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -8131,262 +8127,270 @@ msgstr ""
 msgid "Location not specified"
 msgstr ""
 
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
 msgid "No active build outputs found"
 msgstr ""
 
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
 msgid "Allocated Stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
 msgid "No tracked BOM items for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
 msgid "Completed Tests"
 msgstr ""
 
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
 msgid "No required tests for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
 msgid "Edit stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
 msgid "Delete stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
 msgid "Edit Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
 msgid "Remove Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
 msgid "Substitute parts available"
 msgstr ""
 
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
 msgid "Quantity Per"
 msgstr ""
 
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
 msgid "Insufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
 msgid "Sufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
 msgid "Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
 msgid "Build stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
 msgid "Order stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
 msgid "Allocate stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr ""
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
 msgid "You must select at least one part to allocate"
 msgstr ""
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
 msgid "All Parts Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
 msgid "All selected parts have been fully allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
 msgid "Select source location (leave blank to take from all locations)"
 msgstr ""
 
-#: templates/js/translated/build.js:2117
+#: templates/js/translated/build.js:2100
 msgid "Allocate Stock Items to Build Order"
 msgstr ""
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
 msgid "No matching stock locations"
 msgstr ""
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
 msgid "No matching stock items"
 msgstr ""
 
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
 msgid "Automatic Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
 msgstr ""
 
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
 msgid "If a location is specifed, stock will only be allocated from that location"
 msgstr ""
 
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
 msgstr ""
 
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
 msgstr ""
 
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
 msgid "Allocate Stock Items"
 msgstr ""
 
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
 msgid "Select"
 msgstr ""
 
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
 msgid "Build order is overdue"
 msgstr ""
 
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
 msgid "Progress"
 msgstr ""
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
 msgid "No information"
 msgstr ""
 
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
 msgid "No parts allocated for"
 msgstr ""
 
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
 msgid "Add Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
 msgid "Edit Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:342
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr ""
+
+#: templates/js/translated/company.js:595
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
 #: templates/js/translated/part.js:650
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
 #: templates/js/translated/part.js:654
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
 msgid "No supplier parts found"
 msgstr ""
 
@@ -8424,61 +8428,61 @@ msgstr ""
 msgid "Create filter"
 msgstr ""
 
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
 msgid "Action Prohibited"
 msgstr ""
 
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
 msgid "Create operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
 msgid "Update operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
 msgid "Delete operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
 msgid "View operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
 msgid "Keep this form open"
 msgstr ""
 
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
 msgid "Enter a valid number"
 msgstr ""
 
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
 #: templates/modals.html:43
 msgid "Form errors exist"
 msgstr ""
 
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
 msgid "No results found"
 msgstr ""
 
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
 msgid "Searching"
 msgstr ""
 
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
 msgid "Clear input"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "File Column"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "Field Name"
 msgstr ""
 
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
 msgid "Select Columns"
 msgstr ""
 
@@ -8552,62 +8556,62 @@ msgstr ""
 msgid "Select Label Template"
 msgstr ""
 
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
 msgid "Cancel"
 msgstr ""
 
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
 #: templates/modals.html:28 templates/modals.html:51
 msgid "Submit"
 msgstr ""
 
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
 msgid "Form Title"
 msgstr ""
 
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
 msgid "Waiting for server..."
 msgstr ""
 
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
 msgid "Show Error Information"
 msgstr ""
 
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
 msgid "Accept"
 msgstr ""
 
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
 msgid "Loading Data"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Invalid response from server"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Form data missing from server response"
 msgstr ""
 
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
 msgid "Error posting form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "JSON response missing form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
 msgid "Error 400: Bad Request"
 msgstr ""
 
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
 msgid "Server returned error code 400"
 msgstr ""
 
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
 msgid "Error requesting form data"
 msgstr ""
 
@@ -8665,377 +8669,381 @@ msgstr ""
 msgid "Notifications will load here"
 msgstr ""
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
 msgstr ""
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
 msgstr ""
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr ""
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr ""
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr ""
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr ""
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr ""
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr ""
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr ""
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr ""
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr ""
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr ""
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr ""
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
 msgid "Stock Status"
 msgstr ""
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr ""
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr ""
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr ""
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
 msgid "Order is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
 msgid "Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
 msgid "Duplicate Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
 msgid "Edit Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
 msgid "Delete Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1856
 msgid "No line items found"
 msgstr ""
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
 msgid "Total"
 msgstr ""
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
 msgid "Total Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
 msgid "Duplicate line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
 msgid "Edit line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
 msgid "Delete line item"
 msgstr ""
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
 msgid "Duplicate line"
 msgstr ""
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
 msgid "Edit line"
 msgstr ""
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
 msgid "Delete line"
 msgstr ""
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
 msgid "Duplicate Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
 msgid "Edit Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
 msgid "Delete Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2279
 msgid "No matching line"
 msgstr ""
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2392
 msgid "No sales orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2462
 msgid "Invalid Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2549
 msgid "Edit shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2552
 msgid "Complete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2557
 msgid "Delete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2577
 msgid "Edit Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2594
 msgid "Delete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2628
 msgid "No matching shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2638
 msgid "Shipment Reference"
 msgstr ""
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2662
 msgid "Not shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2668
 msgid "Tracking"
 msgstr ""
 
-#: templates/js/translated/order.js:2603
+#: templates/js/translated/order.js:2672
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:2841
 msgid "Add Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2892
 msgid "Confirm stock allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2893
 msgid "Allocate Stock Items to Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:3101
 msgid "No sales order allocations found"
 msgstr ""
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:3182
 msgid "Edit Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:3199
 msgid "Confirm Delete Operation"
 msgstr ""
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:3200
 msgid "Delete Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
 msgid "Shipped to customer"
 msgstr ""
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
 msgid "Stock location not specified"
 msgstr ""
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3623
 msgid "Allocate serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3629
 msgid "Purchase stock"
 msgstr ""
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
 msgid "Calculate price"
 msgstr ""
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3648
 msgid "Cannot be deleted as items have been shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3651
 msgid "Cannot be deleted as items have been allocated"
 msgstr ""
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3733
 msgid "Allocate Serial Numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3842
 msgid "Update Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3856
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:4092
 msgid "No matching lines"
 msgstr ""
 
@@ -9217,7 +9225,7 @@ msgid "No category"
 msgstr ""
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2238
 msgid "Display as list"
 msgstr ""
 
@@ -9225,7 +9233,7 @@ msgstr ""
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
 msgid "Display as tree"
 msgstr ""
 
@@ -9233,7 +9241,7 @@ msgstr ""
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
 msgid "Path"
 msgstr ""
 
@@ -9241,12 +9249,12 @@ msgstr ""
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
 msgid "Delete test result"
 msgstr ""
 
@@ -9367,11 +9375,11 @@ msgstr ""
 msgid "Sales Order(s) must be selected before printing report"
 msgstr ""
 
-#: templates/js/translated/search.js:307
+#: templates/js/translated/search.js:352
 msgid "Minimize results"
 msgstr ""
 
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:355
 msgid "Remove results"
 msgstr ""
 
@@ -9531,204 +9539,204 @@ msgstr ""
 msgid "Confirm stock adjustment"
 msgstr ""
 
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
 msgid "PASS"
 msgstr ""
 
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
 msgid "FAIL"
 msgstr ""
 
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
 msgid "NO RESULT"
 msgstr ""
 
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
 msgid "Pass test"
 msgstr ""
 
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
 msgid "Add test result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
 msgid "No test results found"
 msgstr ""
 
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
 msgid "Test Date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
 msgid "Edit Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
 msgid "Delete Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
 msgid "In production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
 msgid "Installed in Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
 msgid "Assigned to Sales Order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
 msgid "No stock location set"
 msgstr ""
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1712
 msgid "Stock item is in production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1717
 msgid "Stock item assigned to sales order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1720
 msgid "Stock item assigned to customer"
 msgstr ""
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr ""
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr ""
-
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
 msgid "Serialized stock item has been allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
 msgid "Stock item has been fully allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
 msgid "Stock item has been partially allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1730
 msgid "Stock item has been installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1734
+msgid "Stock item has expired"
+msgstr ""
+
+#: templates/js/translated/stock.js:1736
+msgid "Stock item will expire soon"
+msgstr ""
+
+#: templates/js/translated/stock.js:1743
 msgid "Stock item has been rejected"
 msgstr ""
 
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1745
 msgid "Stock item is lost"
 msgstr ""
 
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1747
 msgid "Stock item is destroyed"
 msgstr ""
 
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1751
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr ""
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1802
 msgid "Stocktake"
 msgstr ""
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1884
 msgid "Supplier part not specified"
 msgstr ""
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1922
 msgid "No stock items matching query"
 msgstr ""
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2095
 msgid "Set Stock Status"
 msgstr ""
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2109
 msgid "Select Status Code"
 msgstr ""
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2110
 msgid "Status code must be selected"
 msgstr ""
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2365
 msgid "Details"
 msgstr ""
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2381
 msgid "Part information unavailable"
 msgstr ""
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2403
 msgid "Location no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2422
 msgid "Purchase order no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
 msgid "Customer no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2459
 msgid "Stock item no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2482
 msgid "Added"
 msgstr ""
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2490
 msgid "Removed"
 msgstr ""
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2566
 msgid "No installed items"
 msgstr ""
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
 msgid "Uninstall Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2666
 msgid "Select stock item to uninstall"
 msgstr ""
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2687
 msgid "Install another stock item into this item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2688
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr ""
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2690
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2691
 msgid "The Stock Item is currently available in stock"
 msgstr ""
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2692
 msgid "The Stock Item is not already installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2693
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr ""
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2706
 msgid "Select part to install"
 msgstr ""
 
@@ -9960,69 +9968,81 @@ msgstr ""
 msgid "Purchasable"
 msgstr ""
 
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr ""
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr ""
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
 msgid "Export Table Data"
 msgstr ""
 
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
 msgid "Select File Format"
 msgstr ""
 
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
 msgid "Loading data"
 msgstr ""
 
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
 msgid "rows per page"
 msgstr ""
 
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
 msgid "Showing all rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "Showing"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "to"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "of"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
 #: templates/search.html:8 templates/search_form.html:6
 #: templates/search_form.html:7
 msgid "Search"
 msgstr ""
 
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
 msgid "No matching results"
 msgstr ""
 
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
 msgid "Hide/Show pagination"
 msgstr ""
 
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
 msgid "Refresh"
 msgstr ""
 
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
 msgid "Toggle"
 msgstr ""
 
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
 msgid "Columns"
 msgstr ""
 
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
 msgid "All"
 msgstr ""
 
diff --git a/InvenTree/locale/pt_br/LC_MESSAGES/django.po b/InvenTree/locale/pt_br/LC_MESSAGES/django.po
index 9d09c7f825..24209c6f0e 100644
--- a/InvenTree/locale/pt_br/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pt_br/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
+"POT-Creation-Date: 2022-05-25 01:01+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -135,10 +135,12 @@ msgid "Select file to attach"
 msgstr ""
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:132 order/models.py:1215
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
 #: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:829 templates/js/translated/order.js:2469
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr ""
 
@@ -160,7 +162,7 @@ msgstr ""
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2522
 msgid "User"
 msgstr ""
 
@@ -208,7 +210,7 @@ msgstr ""
 #: templates/InvenTree/settings/settings.html:327
 #: templates/js/translated/company.js:641 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2292
 msgid "Name"
 msgstr ""
 
@@ -227,12 +229,12 @@ msgstr ""
 #: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
 #: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
 #: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/company.js:840 templates/js/translated/order.js:1577
+#: templates/js/translated/order.js:1785 templates/js/translated/order.js:2269
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
 #: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/stock.js:2304 templates/js/translated/stock.js:2359
 msgid "Description"
 msgstr ""
 
@@ -437,7 +439,7 @@ msgid "Returned"
 msgstr ""
 
 #: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: templates/js/translated/order.js:3057 templates/js/translated/order.js:3374
 msgid "Shipped"
 msgstr ""
 
@@ -517,7 +519,7 @@ msgstr ""
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2030
 msgid "Merged stock items"
 msgstr ""
 
@@ -644,9 +646,9 @@ msgstr ""
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
 #: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1816
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:3241
+#: templates/js/translated/order.js:3726
 msgid "Reference"
 msgstr ""
 
@@ -684,15 +686,15 @@ msgstr ""
 #: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
 #: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
 #: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/company.js:749 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2612
+#: templates/js/translated/order.js:3010 templates/js/translated/order.js:3225
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2385
+#: templates/js/translated/stock.js:2580 templates/js/translated/stock.js:2714
 msgid "Part"
 msgstr ""
 
@@ -709,7 +711,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr ""
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2600
 msgid "Source Location"
 msgstr ""
 
@@ -750,7 +752,7 @@ msgid "Build status code"
 msgstr ""
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr ""
 
@@ -759,7 +761,7 @@ msgid "Batch code for this build output"
 msgstr ""
 
 #: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2282
 msgid "Creation Date"
 msgstr ""
 
@@ -793,7 +795,7 @@ msgstr ""
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1611
 msgid "Responsible"
 msgstr ""
 
@@ -805,7 +807,7 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr ""
 
@@ -822,10 +824,10 @@ msgstr ""
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
 #: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/company.js:845 templates/js/translated/order.js:1937
+#: templates/js/translated/order.js:2088 templates/js/translated/order.js:2480
+#: templates/js/translated/order.js:3399 templates/js/translated/order.js:3797
+#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1926
 msgid "Notes"
 msgstr ""
 
@@ -858,7 +860,7 @@ msgstr ""
 msgid "Stock item is over-allocated"
 msgstr ""
 
-#: build/models.py:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1355
 msgid "Allocation quantity must be greater than zero"
 msgstr ""
 
@@ -870,7 +872,7 @@ msgstr ""
 msgid "Selected stock item not found in BOM"
 msgstr ""
 
-#: build/models.py:1375 stock/templates/stock/item_base.html:335
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
 #: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
 #: templates/navbar.html:38
 msgid "Build"
@@ -880,18 +882,18 @@ msgstr ""
 msgid "Build to allocate parts"
 msgstr ""
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
 #: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2613
+#: templates/js/translated/order.js:2917 templates/js/translated/order.js:2922
+#: templates/js/translated/order.js:3017 templates/js/translated/order.js:3107
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2458
 msgid "Stock Item"
 msgstr ""
 
@@ -903,7 +905,7 @@ msgstr ""
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:877 order/models.py:1395 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
 #: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
@@ -914,25 +916,24 @@ 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
 #: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
 #: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
 #: templates/js/translated/build.js:2103
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1822 templates/js/translated/order.js:2023
+#: templates/js/translated/order.js:2614 templates/js/translated/order.js:2936
+#: templates/js/translated/order.js:3024 templates/js/translated/order.js:3113
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3732
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2507 templates/js/translated/stock.js:2592
 msgid "Quantity"
 msgstr ""
 
@@ -988,8 +989,8 @@ msgstr ""
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr ""
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr ""
@@ -1016,15 +1017,15 @@ msgstr ""
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:2929 templates/js/translated/order.js:3032
+#: templates/js/translated/order.js:3040 templates/js/translated/order.js:3121
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2399
 msgid "Location"
 msgstr ""
 
@@ -1034,11 +1035,11 @@ msgstr ""
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
 #: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
 #: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1581
+#: templates/js/translated/order.js:2274 templates/js/translated/stock.js:1772
+#: templates/js/translated/stock.js:2476 templates/js/translated/stock.js:2608
 msgid "Status"
 msgstr ""
 
@@ -1119,7 +1120,7 @@ msgstr ""
 msgid "Item must be in stock"
 msgstr ""
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr ""
@@ -1136,7 +1137,7 @@ msgstr ""
 msgid "This stock item has already been allocated to this build output"
 msgstr ""
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr ""
 
@@ -1238,9 +1239,9 @@ msgstr ""
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1598
+#: templates/js/translated/order.js:1884 templates/js/translated/order.js:2290
+#: templates/js/translated/order.js:3310 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr ""
 
@@ -1268,13 +1269,13 @@ msgstr ""
 
 #: build/templates/build/build_base.html:176
 #: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: order/models.py:1165 order/models.py:1299
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2229
 msgid "Sales Order"
 msgstr ""
 
@@ -1310,7 +1311,7 @@ msgid "Stock can be taken from any available location."
 msgstr ""
 
 #: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1926
 msgid "Destination"
 msgstr ""
 
@@ -1323,11 +1324,11 @@ msgid "Allocated Parts"
 msgstr ""
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
+#: stock/templates/stock/item_base.html:170
 #: templates/js/translated/build.js:1184
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1786
+#: templates/js/translated/stock.js:2615
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1387,7 +1388,7 @@ msgstr ""
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
 #: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr ""
 
@@ -2652,7 +2653,7 @@ msgstr ""
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
+#: stock/templates/stock/item_base.html:212
 #: templates/js/translated/company.js:333
 #: templates/js/translated/company.js:517
 #: templates/js/translated/company.js:800 templates/js/translated/part.js:235
@@ -2667,7 +2668,7 @@ msgstr ""
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
 #: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:818 templates/js/translated/order.js:1804
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr ""
@@ -2687,7 +2688,7 @@ msgstr ""
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr ""
 
@@ -2724,9 +2725,9 @@ msgstr ""
 #: company/models.py:550 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:87 order/models.py:252
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
+#: stock/templates/stock/item_base.html:229
 #: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: templates/js/translated/company.js:774 templates/js/translated/order.js:1564
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2737,7 +2738,7 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1791
 #: templates/js/translated/part.js:227 templates/js/translated/part.js:942
 msgid "SKU"
 msgstr ""
@@ -2774,8 +2775,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr ""
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1922
 msgid "Packaging"
 msgstr ""
 
@@ -2810,7 +2811,7 @@ msgid "Company"
 msgstr ""
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr ""
 
@@ -2849,9 +2850,9 @@ msgstr ""
 #: company/templates/company/company_base.html:86 order/models.py:600
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:2251
+#: templates/js/translated/stock.js:2440
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr ""
@@ -3100,9 +3101,9 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:790 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1879
 msgid "Supplier Part"
 msgstr ""
 
@@ -3218,7 +3219,7 @@ msgstr ""
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
 #: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/js/translated/stock.js:2316 users/models.py:41
 msgid "Stock Items"
 msgstr ""
 
@@ -3333,7 +3334,7 @@ msgstr ""
 msgid "Order description"
 msgstr ""
 
-#: order/models.py:132
+#: order/models.py:132 order/models.py:1216
 msgid "Link to external page"
 msgstr ""
 
@@ -3362,7 +3363,7 @@ msgid "Company from which the items are being ordered"
 msgstr ""
 
 #: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:1573
 msgid "Supplier Reference"
 msgstr ""
 
@@ -3419,7 +3420,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
 msgstr ""
 
 #: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: templates/js/translated/order.js:2298 templates/js/translated/order.js:2449
 msgid "Shipment Date"
 msgstr ""
 
@@ -3480,8 +3481,8 @@ msgid "deleted"
 msgstr ""
 
 #: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1164 order/models.py:1299
+#: templates/js/translated/order.js:2905
 msgid "Order"
 msgstr ""
 
@@ -3489,10 +3490,10 @@ msgstr ""
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1542
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:2421
 msgid "Purchase Order"
 msgstr ""
 
@@ -3501,7 +3502,7 @@ msgid "Supplier part"
 msgstr ""
 
 #: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:1906
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
@@ -3512,8 +3513,8 @@ msgid "Number of items received"
 msgstr ""
 
 #: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1910
 msgid "Purchase Price"
 msgstr ""
 
@@ -3566,68 +3567,76 @@ msgstr ""
 msgid "Shipment tracking information"
 msgstr ""
 
-#: order/models.py:1213
+#: order/models.py:1209
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1210
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1227
 msgid "Shipment has already been sent"
 msgstr ""
 
-#: order/models.py:1216
+#: order/models.py:1230
 msgid "Shipment has no allocated stock items"
 msgstr ""
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1337 order/models.py:1339
 msgid "Stock item has not been assigned"
 msgstr ""
 
-#: order/models.py:1317
+#: order/models.py:1343
 msgid "Cannot allocate stock item to a line with a different part"
 msgstr ""
 
-#: order/models.py:1319
+#: order/models.py:1345
 msgid "Cannot allocate stock to a line without a part"
 msgstr ""
 
-#: order/models.py:1322
+#: order/models.py:1348
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr ""
 
-#: order/models.py:1326
+#: order/models.py:1352
 msgid "StockItem is over-allocated"
 msgstr ""
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1358 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr ""
 
-#: order/models.py:1335
+#: order/models.py:1361
 msgid "Sales order does not match shipment"
 msgstr ""
 
-#: order/models.py:1336
+#: order/models.py:1362
 msgid "Shipment does not match sales order"
 msgstr ""
 
-#: order/models.py:1344
+#: order/models.py:1370
 msgid "Line"
 msgstr ""
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1378 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr ""
 
-#: order/models.py:1353
+#: order/models.py:1379
 msgid "Sales order shipment reference"
 msgstr ""
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1391 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr ""
 
-#: order/models.py:1366
+#: order/models.py:1392
 msgid "Select stock item to allocate"
 msgstr ""
 
-#: order/models.py:1369
+#: order/models.py:1395
 msgid "Enter stock allocation quantity"
 msgstr ""
 
@@ -3663,7 +3672,7 @@ msgstr ""
 msgid "Purchase order must match supplier"
 msgstr ""
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr ""
 
@@ -3675,11 +3684,11 @@ msgstr ""
 msgid "Select destination location for received items"
 msgstr ""
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr ""
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr ""
 
@@ -3715,35 +3724,35 @@ msgstr ""
 msgid "Sale price currency"
 msgstr ""
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr ""
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr ""
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr ""
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr ""
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr ""
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr ""
 
@@ -3865,8 +3874,8 @@ msgstr ""
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
 #: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2524 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3948,7 +3957,7 @@ msgid "Print packing list"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
 msgstr ""
 
@@ -3962,7 +3971,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2264
 msgid "Customer Reference"
 msgstr ""
 
@@ -5102,16 +5111,18 @@ msgstr ""
 msgid "This part is a variant of %(link)s"
 msgstr ""
 
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3336
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr ""
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr ""
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr ""
 
@@ -5134,7 +5145,7 @@ msgid "Latest Serial Number"
 msgstr ""
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr ""
 
@@ -5772,12 +5783,12 @@ msgid "Stock Item Test Report"
 msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
 #: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3022
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr ""
 
@@ -5798,7 +5809,7 @@ msgstr ""
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1590 templates/js/translated/stock.js:2349
 msgid "Date"
 msgstr ""
 
@@ -5817,7 +5828,7 @@ msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2598
 msgid "Serial"
 msgstr ""
 
@@ -5834,7 +5845,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr ""
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr ""
 
@@ -5896,7 +5907,7 @@ msgstr ""
 msgid "Packaging this stock item is stored in"
 msgstr ""
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr ""
 
@@ -5936,8 +5947,8 @@ msgstr ""
 msgid "Destination Sales Order"
 msgstr ""
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1826
 msgid "Expiry Date"
 msgstr ""
 
@@ -6217,7 +6228,7 @@ msgstr ""
 msgid "Installed Stock Items"
 msgstr ""
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2742
 msgid "Install Stock Item"
 msgstr ""
 
@@ -6313,110 +6324,114 @@ msgstr ""
 msgid "Delete stock item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:244
-msgid "This stock item has not passed all required tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:252
-msgid "This stock item is allocated to Sales Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr ""
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:284
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:292
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1710
+msgid "No location set"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1842
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr ""
 
@@ -6541,7 +6556,7 @@ msgstr ""
 msgid "Child Items"
 msgstr ""
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr ""
 
@@ -6566,55 +6581,55 @@ msgstr ""
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr ""
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr ""
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr ""
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr ""
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr ""
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr ""
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr ""
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr ""
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr ""
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr ""
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr ""
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr ""
 
@@ -7335,7 +7350,7 @@ msgstr ""
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
 #: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
 #: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr ""
@@ -7851,12 +7866,12 @@ msgid "Download BOM Template"
 msgstr ""
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:53
 msgid "Format"
 msgstr ""
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr ""
 
@@ -8156,12 +8171,12 @@ msgid "No required tests for this build"
 msgstr ""
 
 #: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/order.js:3059
 msgid "Edit stock allocation"
 msgstr ""
 
 #: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/order.js:3060
 msgid "Delete stock allocation"
 msgstr ""
 
@@ -8190,11 +8205,11 @@ msgid "Sufficient stock available"
 msgstr ""
 
 #: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3346
 msgid "Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3426
 msgid "Build stock"
 msgstr ""
 
@@ -8202,21 +8217,21 @@ msgstr ""
 msgid "Order stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3419
 msgid "Allocate stock"
 msgstr ""
 
 #: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2586
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr ""
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2587
 msgid "You must select at least one part to allocate"
 msgstr ""
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2535
 msgid "Specify stock allocation quantity"
 msgstr ""
 
@@ -8228,7 +8243,7 @@ msgstr ""
 msgid "All selected parts have been fully allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2601
 msgid "Select source location (leave blank to take from all locations)"
 msgstr ""
 
@@ -8236,11 +8251,11 @@ msgstr ""
 msgid "Allocate Stock Items to Build Order"
 msgstr ""
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2698
 msgid "No matching stock locations"
 msgstr ""
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2775
 msgid "No matching stock items"
 msgstr ""
 
@@ -8274,7 +8289,7 @@ msgstr ""
 
 #: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
 #: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/stock.js:2286
 msgid "Select"
 msgstr ""
 
@@ -8286,7 +8301,7 @@ msgstr ""
 msgid "Progress"
 msgstr ""
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2528
 msgid "No user information"
 msgstr ""
 
@@ -8314,7 +8329,7 @@ msgstr ""
 msgid "Delete Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr ""
 
@@ -8669,377 +8684,381 @@ msgstr ""
 msgid "Notifications will load here"
 msgstr ""
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
 msgstr ""
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
 msgstr ""
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr ""
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr ""
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr ""
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr ""
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr ""
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr ""
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr ""
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr ""
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr ""
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr ""
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr ""
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2089
 msgid "Stock Status"
 msgstr ""
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr ""
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr ""
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr ""
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1531 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1556 templates/js/translated/order.js:2241
 msgid "Order is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1606 templates/js/translated/order.js:2306
+#: templates/js/translated/order.js:2436
 msgid "Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1680 templates/js/translated/order.js:3478
 msgid "Duplicate Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1697 templates/js/translated/order.js:3500
 msgid "Edit Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1710 templates/js/translated/order.js:3511
 msgid "Delete Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1753
 msgid "No line items found"
 msgstr ""
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1780 templates/js/translated/order.js:3235
 msgid "Total"
 msgstr ""
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2036
+#: templates/js/translated/order.js:3260 templates/js/translated/order.js:3745
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1849 templates/js/translated/order.js:2052
+#: templates/js/translated/order.js:3276 templates/js/translated/order.js:3761
 msgid "Total Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1890 templates/js/translated/order.js:3318
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:1949 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3432
 msgid "Duplicate line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:1954 templates/js/translated/order.js:3433
 msgid "Edit line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:1955 templates/js/translated/order.js:3437
 msgid "Delete line item"
 msgstr ""
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2101 templates/js/translated/order.js:3810
 msgid "Duplicate line"
 msgstr ""
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2102 templates/js/translated/order.js:3811
 msgid "Edit line"
 msgstr ""
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2103 templates/js/translated/order.js:3812
 msgid "Delete line"
 msgstr ""
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2133 templates/js/translated/order.js:3842
 msgid "Duplicate Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2154 templates/js/translated/order.js:3863
 msgid "Edit Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2165 templates/js/translated/order.js:3874
 msgid "Delete Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2176
 msgid "No matching line"
 msgstr ""
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2217
 msgid "No sales orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2255
 msgid "Invalid Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2342
 msgid "Edit shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2345
 msgid "Complete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2350
 msgid "Delete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2370
 msgid "Edit Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2387
 msgid "Delete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2421
 msgid "No matching shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2431
 msgid "Shipment Reference"
 msgstr ""
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2455
 msgid "Not shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2461
 msgid "Tracking"
 msgstr ""
 
-#: templates/js/translated/order.js:2603
+#: templates/js/translated/order.js:2465
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:2634
 msgid "Add Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2685
 msgid "Confirm stock allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2686
 msgid "Allocate Stock Items to Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:2894
 msgid "No sales order allocations found"
 msgstr ""
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:2975
 msgid "Edit Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:2992
 msgid "Confirm Delete Operation"
 msgstr ""
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:2993
 msgid "Delete Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
+#: templates/js/translated/order.js:3036 templates/js/translated/order.js:3125
 #: templates/js/translated/stock.js:1545
 msgid "Shipped to customer"
 msgstr ""
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3044 templates/js/translated/order.js:3134
 msgid "Stock location not specified"
 msgstr ""
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3416
 msgid "Allocate serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3422
 msgid "Purchase stock"
 msgstr ""
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3429 templates/js/translated/order.js:3627
 msgid "Calculate price"
 msgstr ""
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3441
 msgid "Cannot be deleted as items have been shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3444
 msgid "Cannot be deleted as items have been allocated"
 msgstr ""
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3526
 msgid "Allocate Serial Numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3635
 msgid "Update Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3649
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:3885
 msgid "No matching lines"
 msgstr ""
 
@@ -9221,7 +9240,7 @@ msgid "No category"
 msgstr ""
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2247
 msgid "Display as list"
 msgstr ""
 
@@ -9229,7 +9248,7 @@ msgstr ""
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2266
 msgid "Display as tree"
 msgstr ""
 
@@ -9237,7 +9256,7 @@ msgstr ""
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2310
 msgid "Path"
 msgstr ""
 
@@ -9587,26 +9606,18 @@ msgstr ""
 msgid "No stock location set"
 msgstr ""
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1722
 msgid "Stock item is in production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1727
 msgid "Stock item assigned to sales order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1730
 msgid "Stock item assigned to customer"
 msgstr ""
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr ""
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr ""
-
 #: templates/js/translated/stock.js:1733
 msgid "Serialized stock item has been allocated"
 msgstr ""
@@ -9619,120 +9630,128 @@ msgstr ""
 msgid "Stock item has been partially allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1740
 msgid "Stock item has been installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1749
-msgid "Stock item has been rejected"
+#: templates/js/translated/stock.js:1744
+msgid "Stock item has expired"
 msgstr ""
 
-#: templates/js/translated/stock.js:1751
-msgid "Stock item is lost"
+#: templates/js/translated/stock.js:1746
+msgid "Stock item will expire soon"
 msgstr ""
 
 #: templates/js/translated/stock.js:1753
-msgid "Stock item is destroyed"
+msgid "Stock item has been rejected"
+msgstr ""
+
+#: templates/js/translated/stock.js:1755
+msgid "Stock item is lost"
 msgstr ""
 
 #: templates/js/translated/stock.js:1757
+msgid "Stock item is destroyed"
+msgstr ""
+
+#: templates/js/translated/stock.js:1761
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr ""
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1812
 msgid "Stocktake"
 msgstr ""
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1894
 msgid "Supplier part not specified"
 msgstr ""
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1932
 msgid "No stock items matching query"
 msgstr ""
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2104
 msgid "Set Stock Status"
 msgstr ""
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2118
 msgid "Select Status Code"
 msgstr ""
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2119
 msgid "Status code must be selected"
 msgstr ""
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2374
 msgid "Details"
 msgstr ""
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2390
 msgid "Part information unavailable"
 msgstr ""
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2412
 msgid "Location no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2431
 msgid "Purchase order no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2450
 msgid "Customer no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2468
 msgid "Stock item no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2491
 msgid "Added"
 msgstr ""
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2499
 msgid "Removed"
 msgstr ""
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2575
 msgid "No installed items"
 msgstr ""
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2662
 msgid "Uninstall Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2675
 msgid "Select stock item to uninstall"
 msgstr ""
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2696
 msgid "Install another stock item into this item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2697
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr ""
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2699
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2700
 msgid "The Stock Item is currently available in stock"
 msgstr ""
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2701
 msgid "The Stock Item is not already installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2702
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr ""
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2715
 msgid "Select part to install"
 msgstr ""
 
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index 340465e5cc..7e4d2e68ce 100644
--- a/InvenTree/locale/ru/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ru/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
-"PO-Revision-Date: 2022-05-24 01:42\n"
+"POT-Creation-Date: 2022-05-28 23:41+0000\n"
+"PO-Revision-Date: 2022-05-29 01:47\n"
 "Last-Translator: \n"
 "Language-Team: Russian\n"
 "Language: ru_RU\n"
@@ -21,7 +21,7 @@ msgstr ""
 msgid "API endpoint not found"
 msgstr "Конечная точка API не обнаружена"
 
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
 msgid "Error details can be found in the admin panel"
 msgstr ""
 
@@ -30,7 +30,7 @@ msgid "Enter date"
 msgstr "Введите дату"
 
 #: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
 msgid "Confirm"
 msgstr "Подтвердить"
 
@@ -79,7 +79,7 @@ msgstr "Вы должны вводить один и тот же адрес эл
 msgid "Duplicate serial: {sn}"
 msgstr "Повторяющийся серийный номер: {sn}"
 
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
 msgid "Invalid quantity provided"
 msgstr "недопустимое количество"
 
@@ -134,10 +134,12 @@ msgid "Select file to attach"
 msgstr "Выберите файл для вложения"
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:139 order/models.py:1273
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr "Ссылка"
 
@@ -159,7 +161,7 @@ msgstr "Комментарий к файлу"
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2513
 msgid "User"
 msgstr "Пользователь"
 
@@ -205,9 +207,10 @@ msgstr "Неверный выбор"
 #: templates/InvenTree/settings/plugin.html:132
 #: templates/InvenTree/settings/plugin_settings.html:23
 #: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2283
 msgid "Name"
 msgstr "Название"
 
@@ -216,22 +219,22 @@ msgstr "Название"
 #: company/models.py:575 company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
 #: part/templates/part/part_base.html:167
 #: part/templates/part/set_category.html:14 report/models.py:182
 #: report/models.py:547 report/models.py:586
 #: report/templates/report/inventree_build_order_base.html:118
 #: stock/templates/stock/location.html:103
 #: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
 msgid "Description"
 msgstr "Описание"
 
@@ -406,7 +409,7 @@ msgid "InvenTree system health checks failed"
 msgstr "Ошибка проверки состояния системы InvenTree"
 
 #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
 msgid "Pending"
 msgstr "Ожидаемый"
 
@@ -414,141 +417,145 @@ msgstr "Ожидаемый"
 msgid "Placed"
 msgstr "Размещены"
 
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
 #: order/templates/order/order_base.html:134
 #: order/templates/order/sales_order_base.html:133
 msgid "Complete"
 msgstr "Готово"
 
 #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
 msgid "Cancelled"
 msgstr "Отменено"
 
 #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
 msgid "Lost"
 msgstr "Потерян"
 
 #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
 msgid "Returned"
 msgstr "Возвращено"
 
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
 msgid "Shipped"
 msgstr "Доставлено"
 
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
 msgid "OK"
 msgstr "Да"
 
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
 msgid "Attention needed"
 msgstr "Требует внимания"
 
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
 msgid "Damaged"
 msgstr "Поврежденный"
 
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
 msgid "Destroyed"
 msgstr "Разрушено"
 
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
 msgid "Rejected"
 msgstr "Отклоненный"
 
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
 msgid "Legacy stock tracking entry"
 msgstr "Отслеживание устаревших запасов"
 
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
 msgid "Stock item created"
 msgstr "Товар создан"
 
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
 msgid "Edited stock item"
 msgstr "Отредактированный товар"
 
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
 msgid "Assigned serial number"
 msgstr "Присвоенный серийный номер"
 
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
 msgid "Stock counted"
 msgstr "Склад подсчитан"
 
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
 msgid "Stock manually added"
 msgstr "Добавлен вручную"
 
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
 msgid "Stock manually removed"
 msgstr "Удалено вручную"
 
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
 msgid "Location changed"
 msgstr "Расположение изменено"
 
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
 msgid "Installed into assembly"
 msgstr "Укомплектовано"
 
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
 msgid "Removed from assembly"
 msgstr "Удалено из сборки"
 
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
 msgid "Installed component item"
 msgstr "Установленный элемент компонента"
 
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
 msgid "Removed component item"
 msgstr "Удален элемент компонента"
 
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
 msgid "Split from parent item"
 msgstr "Отделить от родительского элемента"
 
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
 msgid "Split child item"
 msgstr "Разбить дочерний элемент"
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
 msgid "Merged stock items"
 msgstr "Объединенные позиции на складе"
 
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
 msgid "Converted to variant"
 msgstr ""
 
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
 msgid "Sent to customer"
 msgstr "Отправлено клиенту"
 
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
 msgid "Returned from customer"
 msgstr "Возвращено от клиента"
 
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
 msgid "Build order output created"
 msgstr "Создан вывод заказа сборки"
 
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
 msgid "Build order output completed"
 msgstr "Вывод заказа сборки завершён"
 
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
 msgid "Consumed by build order"
 msgstr ""
 
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
 msgid "Received against purchase order"
 msgstr "Получено по заказу на покупку"
 
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
 msgid "Production"
 msgstr "Продукция"
 
@@ -637,15 +644,15 @@ msgstr "Порядок сборки"
 msgid "Build Order Reference"
 msgstr "Ссылка на заказ"
 
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
 #: part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
 msgid "Reference"
 msgstr "Отсылка"
 
@@ -664,7 +671,7 @@ msgstr ""
 
 #: build/models.py:225 build/templates/build/build_base.html:77
 #: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
 #: part/models.py:2303 part/models.py:2319 part/models.py:2338
 #: part/models.py:2355 part/models.py:2457 part/models.py:2579
 #: part/models.py:2669 part/models.py:2760 part/models.py:3050
@@ -679,19 +686,21 @@ msgstr ""
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
 #: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
 msgid "Part"
 msgstr "Детали"
 
@@ -708,7 +717,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr ""
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
 msgid "Source Location"
 msgstr "Расположение источника"
 
@@ -749,7 +758,7 @@ msgid "Build status code"
 msgstr "Код статуса сборки"
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr "Код партии"
 
@@ -757,12 +766,12 @@ msgstr "Код партии"
 msgid "Batch code for this build output"
 msgstr "Код партии для этого вывода сборки"
 
-#: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
 msgid "Creation Date"
 msgstr "Дата создания"
 
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
 msgid "Target completion date"
 msgstr "Целевая дата завершения"
 
@@ -770,8 +779,8 @@ msgstr "Целевая дата завершения"
 msgid "Target date for build completion. Build will be overdue after this date."
 msgstr "Целевая дата для сборки. Сборка будет просрочена после этой даты."
 
-#: build/models.py:300 order/models.py:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
 msgid "Completion Date"
 msgstr "Дата завершения"
 
@@ -779,7 +788,7 @@ msgstr "Дата завершения"
 msgid "completed by"
 msgstr "выполнено"
 
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
 msgid "Issued by"
 msgstr "Выдал/ла"
 
@@ -788,11 +797,11 @@ msgid "User who issued this build order"
 msgstr "Пользователь, выпустивший этот заказ на сборку"
 
 #: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
 msgid "Responsible"
 msgstr "Ответственный"
 
@@ -804,14 +813,14 @@ msgstr "Пользователь, ответственный за этот за
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr "Внешняя ссылка"
 
 #: build/models.py:334 build/serializers.py:390
 #: build/templates/build/sidebar.html:21 company/models.py:134
 #: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
 #: order/templates/order/po_sidebar.html:11
 #: order/templates/order/so_sidebar.html:17 part/models.py:983
 #: part/templates/part/part_sidebar.html:59
@@ -820,11 +829,11 @@ msgstr "Внешняя ссылка"
 #: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
 msgid "Notes"
 msgstr "Заметки"
 
@@ -857,7 +866,7 @@ msgstr ""
 msgid "Stock item is over-allocated"
 msgstr "Предмет на складе перераспределен"
 
-#: build/models.py:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1413
 msgid "Allocation quantity must be greater than zero"
 msgstr "Выделенное количество должно быть больше нуля"
 
@@ -869,8 +878,8 @@ msgstr "Количество должно быть 1 для сериализов
 msgid "Selected stock item not found in BOM"
 msgstr "Выбранная единица хранения не найдена в BOM"
 
-#: build/models.py:1375 stock/templates/stock/item_base.html:335
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
 #: templates/navbar.html:38
 msgid "Build"
 msgstr "Сборка"
@@ -879,18 +888,18 @@ msgstr "Сборка"
 msgid "Build to allocate parts"
 msgstr ""
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2449
 msgid "Stock Item"
 msgstr "Предметы на складе"
 
@@ -902,10 +911,10 @@ msgstr "Исходный складской предмет"
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_build_order_base.html:114
@@ -913,25 +922,24 @@ 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
 msgid "Quantity"
 msgstr "Количество"
 
@@ -948,7 +956,7 @@ msgid "Destination stock item"
 msgstr ""
 
 #: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
 msgid "Build Output"
 msgstr ""
 
@@ -972,7 +980,7 @@ msgstr ""
 msgid "Enter quantity for build output"
 msgstr "Введите количество для вывода сборки"
 
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
 #: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
 #: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
 #: stock/serializers.py:294
@@ -987,8 +995,8 @@ msgstr ""
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr ""
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr "Серийные номера"
@@ -1015,15 +1023,15 @@ msgstr ""
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
 msgid "Location"
 msgstr "Расположение"
 
@@ -1032,12 +1040,12 @@ msgid "Location for completed build outputs"
 msgstr ""
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: build/templates/build/detail.html:62 order/models.py:663
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
 msgid "Status"
 msgstr "Статус"
 
@@ -1118,7 +1126,7 @@ msgstr ""
 msgid "Item must be in stock"
 msgstr "Компонент должен быть в наличии"
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr "Превышено доступное количество ({q})"
@@ -1135,7 +1143,7 @@ msgstr ""
 msgid "This stock item has already been allocated to this build output"
 msgstr ""
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr ""
 
@@ -1233,13 +1241,13 @@ msgid "Stock has not been fully allocated to this Build Order"
 msgstr ""
 
 #: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr "Целевая дата"
 
@@ -1266,14 +1274,14 @@ msgid "Completed"
 msgstr "Завершённые"
 
 #: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2436
 msgid "Sales Order"
 msgstr "Заказ покупателя"
 
@@ -1308,8 +1316,8 @@ msgstr ""
 msgid "Stock can be taken from any available location."
 msgstr ""
 
-#: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
 msgid "Destination"
 msgstr "Назначение"
 
@@ -1322,11 +1330,11 @@ msgid "Allocated Parts"
 msgstr ""
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
-#: templates/js/translated/build.js:1184
+#: stock/templates/stock/item_base.html:170
+#: templates/js/translated/build.js:1179
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1335,7 +1343,7 @@ msgstr "Партия"
 #: build/templates/build/detail.html:126
 #: order/templates/order/order_base.html:149
 #: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
 msgid "Created"
 msgstr "Создано"
 
@@ -1355,7 +1363,7 @@ msgstr ""
 msgid "Allocate Stock to Build"
 msgstr ""
 
-#: build/templates/build/detail.html:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
 msgid "Unallocate stock"
 msgstr ""
 
@@ -1385,8 +1393,8 @@ msgstr ""
 
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: company/templates/company/detail.html:85
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr "Заказать детали"
 
@@ -1461,8 +1469,8 @@ msgid "Completed Build Outputs"
 msgstr ""
 
 #: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
 #: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:82
 #: order/templates/order/sales_order_detail.html:129
@@ -1476,11 +1484,11 @@ msgstr "Приложения"
 msgid "Build Notes"
 msgstr "Заметки сборки"
 
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
 msgid "Allocation Complete"
 msgstr ""
 
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
@@ -1492,18 +1500,6 @@ msgstr "Новый заказ на сборку"
 msgid "Print Build Orders"
 msgstr "Печатать заказ на сборку"
 
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr ""
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr ""
-
 #: build/templates/build/sidebar.html:5
 msgid "Build Order Details"
 msgstr ""
@@ -1727,7 +1723,7 @@ msgstr "Шаблон"
 msgid "Parts are templates by default"
 msgstr "По умолчанию детали являются шаблонами"
 
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
 #: templates/js/translated/table_filters.js:168
 #: templates/js/translated/table_filters.js:460
 msgid "Assembly"
@@ -2413,7 +2409,7 @@ msgid "Price break quantity"
 msgstr ""
 
 #: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: company/templates/company/supplier_part.html:263 order/models.py:975
 #: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
 msgid "Price"
 msgstr "Цена"
@@ -2556,7 +2552,7 @@ msgstr "Описание компании"
 
 #: company/models.py:104 company/templates/company/company_base.html:100
 #: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
 msgid "Website"
 msgstr "Сайт"
 
@@ -2651,10 +2647,11 @@ msgstr "Выберите деталь"
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: stock/templates/stock/item_base.html:212
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
 #: templates/js/translated/table_filters.js:411
 msgid "Manufacturer"
 msgstr "Производитель"
@@ -2665,8 +2662,10 @@ msgstr "Выберите производителя"
 
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr ""
@@ -2686,7 +2685,7 @@ msgstr ""
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr "Деталь производителя"
 
@@ -2696,8 +2695,9 @@ msgstr "Наименование параметра"
 
 #: company/models.py:427
 #: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
 msgid "Value"
 msgstr "Значение"
 
@@ -2708,7 +2708,7 @@ msgstr "Значение параметра"
 #: company/models.py:434 part/models.py:940 part/models.py:2549
 #: part/templates/part/part_base.html:280
 #: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
 msgid "Units"
 msgstr "Ед.изм"
 
@@ -2721,11 +2721,12 @@ msgid "Linked manufacturer part must reference the same base part"
 msgstr ""
 
 #: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: stock/templates/stock/item_base.html:229
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2736,8 +2737,9 @@ msgid "Select supplier"
 msgstr "Выберите поставщика"
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
 msgid "SKU"
 msgstr ""
 
@@ -2773,8 +2775,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr ""
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
 msgid "Packaging"
 msgstr "Упаковка"
 
@@ -2804,12 +2806,12 @@ msgstr "Код валюты"
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
 msgid "Company"
 msgstr "Компания"
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr "Создать заказ на закупку"
 
@@ -2822,7 +2824,7 @@ msgid "Edit company information"
 msgstr "Редактировать информацию о компании"
 
 #: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
 msgid "Edit Company"
 msgstr "Редактировать компанию"
 
@@ -2845,12 +2847,12 @@ msgstr "Загрузить новое изображение"
 msgid "Download image from URL"
 msgstr "Скачать изображение по ссылке"
 
-#: company/templates/company/company_base.html:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr "Покупатель"
@@ -2869,7 +2871,7 @@ msgid "Upload Image"
 msgstr "Загрузить изображение"
 
 #: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
+#: company/templates/company/manufacturer_part_sidebar.html:7
 #: templates/InvenTree/search.html:118
 msgid "Supplier Parts"
 msgstr "Детали поставщиков"
@@ -2884,28 +2886,19 @@ msgstr "Создать новую деталь поставщика"
 msgid "New Supplier Part"
 msgstr "Новая деталь поставщика"
 
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr "Настройки"
-
 #: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
 #: part/templates/part/category.html:176
 msgid "Order parts"
 msgstr "Заказать детали"
 
 #: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
 msgid "Delete parts"
 msgstr "Удалить детали"
 
 #: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
 msgid "Delete Parts"
 msgstr "Удалить детали"
 
@@ -2917,88 +2910,76 @@ msgstr "Детали производителей"
 msgid "Create new manufacturer part"
 msgstr "Создать новую деталь производителя"
 
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
 msgid "New Manufacturer Part"
 msgstr "Новая деталь производителя"
 
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
 msgid "Supplier Stock"
 msgstr "Склад поставщика"
 
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
 #: company/templates/company/sidebar.html:12
 #: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
 #: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:235 templates/navbar.html:50
 #: users/models.py:43
 msgid "Purchase Orders"
 msgstr "Заказы на закупку"
 
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
 #: order/templates/order/purchase_orders.html:17
 msgid "Create new purchase order"
 msgstr "Создать новый заказ на закупку"
 
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr "Новый заказ на закупку"
 
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
 #: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
 #: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
 #: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:259 templates/navbar.html:61
 #: users/models.py:44
 msgid "Sales Orders"
 msgstr "Заказы на продажу"
 
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
 #: order/templates/order/sales_orders.html:20
 msgid "Create new sales order"
 msgstr "Создать новый заказ на продажу"
 
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
 #: order/templates/order/sales_orders.html:21
 msgid "New Sales Order"
 msgstr "Новый заказ на продажу"
 
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
 msgid "Assigned Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
 msgid "Company Notes"
 msgstr "Заметки о компании"
 
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr "Удалить деталь поставщика?"
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr "Все выбранные детали поставщика будут удалены"
-
 #: company/templates/company/index.html:8
 msgid "Supplier List"
 msgstr "Список поставщиков"
 
 #: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
 #: templates/navbar.html:49
 msgid "Manufacturers"
 msgstr "Производители"
@@ -3011,12 +2992,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -3032,55 +3013,46 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:119
 #: company/templates/company/supplier_part.html:15 company/views.py:41
 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
 msgid "Suppliers"
 msgstr "Поставщики"
 
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
 #: part/templates/part/detail.html:363
 msgid "Delete supplier parts"
 msgstr "Удалить деталь поставщика"
 
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
 msgid "Delete"
 msgstr "Удалить"
 
-#: company/templates/company/manufacturer_part.html:164
+#: company/templates/company/manufacturer_part.html:166
 #: company/templates/company/manufacturer_part_sidebar.html:5
 #: part/templates/part/category_sidebar.html:19
 #: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8
 msgid "Parameters"
 msgstr "Параметры"
 
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
 #: part/templates/part/detail.html:184
 #: templates/InvenTree/settings/category.html:12
 #: templates/InvenTree/settings/part.html:66
 msgid "New Parameter"
 msgstr "Новый параметр"
 
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
 msgid "Delete parameters"
 msgstr "Удалить параметры"
 
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
 msgid "Add Parameter"
 msgstr "Добавить параметр"
 
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr "Удалить параметры"
-
 #: company/templates/company/sidebar.html:6
 msgid "Manufactured Parts"
 msgstr "Произведенные детали"
@@ -3099,19 +3071,19 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
 msgid "Supplier Part"
 msgstr "Деталь поставщика"
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
 msgid "Edit supplier part"
 msgstr "Редактировать деталь поставщика"
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
 msgid "Delete supplier part"
 msgstr "Удалить деталь поставщика"
 
@@ -3186,11 +3158,11 @@ msgstr "Последнее обновление"
 #: part/templates/part/part_sidebar.html:14
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
 #: templates/InvenTree/settings/sidebar.html:43
 #: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
 #: templates/navbar.html:31
 msgid "Stock"
 msgstr "Склад"
@@ -3216,8 +3188,8 @@ msgstr ""
 #: stock/templates/stock/location.html:161
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
+#: templates/js/translated/stock.js:2307 users/models.py:41
 msgid "Stock Items"
 msgstr "Детали на складе"
 
@@ -3229,7 +3201,7 @@ msgstr "Новый поставщик"
 msgid "New Manufacturer"
 msgstr "Новый производитель"
 
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
 #: templates/navbar.html:60
 msgid "Customers"
 msgstr "Покупатели"
@@ -3238,7 +3210,7 @@ msgstr "Покупатели"
 msgid "New Customer"
 msgstr "Новый покупатель"
 
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:212
 msgid "Companies"
 msgstr "Компании"
 
@@ -3328,305 +3300,313 @@ msgstr ""
 msgid "Part query filters (comma-separated value of key=value pairs)"
 msgstr ""
 
-#: order/models.py:130
+#: order/models.py:137
 msgid "Order description"
 msgstr ""
 
-#: order/models.py:132
+#: order/models.py:139 order/models.py:1274
 msgid "Link to external page"
 msgstr ""
 
-#: order/models.py:140
+#: order/models.py:147
 msgid "Created By"
 msgstr ""
 
-#: order/models.py:147
+#: order/models.py:154
 msgid "User or group responsible for this order"
 msgstr ""
 
-#: order/models.py:152
+#: order/models.py:159
 msgid "Order notes"
 msgstr ""
 
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
 msgid "Order reference"
 msgstr ""
 
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
 msgid "Purchase order status"
 msgstr ""
 
-#: order/models.py:253
+#: order/models.py:311
 msgid "Company from which the items are being ordered"
 msgstr "Компания, в которой детали заказываются"
 
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
 msgid "Supplier Reference"
 msgstr ""
 
-#: order/models.py:256
+#: order/models.py:314
 msgid "Supplier order reference code"
 msgstr ""
 
-#: order/models.py:263
+#: order/models.py:321
 msgid "received by"
 msgstr ""
 
-#: order/models.py:268
+#: order/models.py:326
 msgid "Issue Date"
 msgstr ""
 
-#: order/models.py:269
+#: order/models.py:327
 msgid "Date order was issued"
 msgstr ""
 
-#: order/models.py:274
+#: order/models.py:332
 msgid "Target Delivery Date"
 msgstr ""
 
-#: order/models.py:275
+#: order/models.py:333
 msgid "Expected date for order delivery. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:281
+#: order/models.py:339
 msgid "Date order was completed"
 msgstr ""
 
-#: order/models.py:310
+#: order/models.py:368
 msgid "Part supplier must match PO supplier"
 msgstr ""
 
-#: order/models.py:456
+#: order/models.py:514
 msgid "Quantity must be a positive number"
 msgstr ""
 
-#: order/models.py:601
+#: order/models.py:659
 msgid "Company to which the items are being sold"
 msgstr "Компания, которой детали продаются"
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer Reference "
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer order reference code"
 msgstr ""
 
-#: order/models.py:612
+#: order/models.py:670
 msgid "Target date for order completion. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
 msgid "Shipment Date"
 msgstr ""
 
-#: order/models.py:622
+#: order/models.py:680
 msgid "shipped by"
 msgstr ""
 
-#: order/models.py:688
+#: order/models.py:746
 msgid "Order cannot be completed as no parts have been assigned"
 msgstr ""
 
-#: order/models.py:692
+#: order/models.py:750
 msgid "Only a pending order can be marked as complete"
 msgstr ""
 
-#: order/models.py:695
+#: order/models.py:753
 msgid "Order cannot be completed as there are incomplete shipments"
 msgstr ""
 
-#: order/models.py:698
+#: order/models.py:756
 msgid "Order cannot be completed as there are incomplete line items"
 msgstr ""
 
-#: order/models.py:878
+#: order/models.py:936
 msgid "Item quantity"
 msgstr ""
 
-#: order/models.py:884
+#: order/models.py:942
 msgid "Line item reference"
 msgstr ""
 
-#: order/models.py:886
+#: order/models.py:944
 msgid "Line item notes"
 msgstr ""
 
-#: order/models.py:891
+#: order/models.py:949
 msgid "Target shipping date for this line item"
 msgstr ""
 
-#: order/models.py:909
+#: order/models.py:967
 msgid "Context"
 msgstr ""
 
-#: order/models.py:910
+#: order/models.py:968
 msgid "Additional context for this line"
 msgstr ""
 
-#: order/models.py:918
+#: order/models.py:976
 msgid "Unit price"
 msgstr ""
 
-#: order/models.py:951
+#: order/models.py:1009
 msgid "Supplier part must match supplier"
 msgstr ""
 
-#: order/models.py:958
+#: order/models.py:1016
 msgid "deleted"
 msgstr ""
 
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
 msgid "Order"
 msgstr ""
 
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
 msgid "Purchase Order"
 msgstr "Заказ на закупку"
 
-#: order/models.py:984
+#: order/models.py:1042
 msgid "Supplier part"
 msgstr ""
 
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
 msgstr ""
 
-#: order/models.py:992
+#: order/models.py:1050
 msgid "Number of items received"
 msgstr ""
 
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1900
 msgid "Purchase Price"
 msgstr "Закупочная цена"
 
-#: order/models.py:1000
+#: order/models.py:1058
 msgid "Unit purchase price"
 msgstr ""
 
-#: order/models.py:1008
+#: order/models.py:1066
 msgid "Where does the Purchaser want this item to be stored?"
 msgstr ""
 
-#: order/models.py:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
 #: part/templates/part/prices.html:119 part/templates/part/prices.html:288
 msgid "Sale Price"
 msgstr "Цена продажи"
 
-#: order/models.py:1079
+#: order/models.py:1137
 msgid "Unit sale price"
 msgstr ""
 
-#: order/models.py:1084
+#: order/models.py:1142
 msgid "Shipped quantity"
 msgstr ""
 
-#: order/models.py:1171
+#: order/models.py:1229
 msgid "Date of shipment"
 msgstr ""
 
-#: order/models.py:1178
+#: order/models.py:1236
 msgid "Checked By"
 msgstr ""
 
-#: order/models.py:1179
+#: order/models.py:1237
 msgid "User who checked this shipment"
 msgstr ""
 
-#: order/models.py:1187
+#: order/models.py:1245
 msgid "Shipment number"
 msgstr ""
 
-#: order/models.py:1194
+#: order/models.py:1252
 msgid "Shipment notes"
 msgstr ""
 
-#: order/models.py:1201
+#: order/models.py:1259
 msgid "Tracking Number"
 msgstr ""
 
-#: order/models.py:1202
+#: order/models.py:1260
 msgid "Shipment tracking information"
 msgstr ""
 
-#: order/models.py:1213
+#: order/models.py:1267
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1268
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1285
 msgid "Shipment has already been sent"
 msgstr ""
 
-#: order/models.py:1216
+#: order/models.py:1288
 msgid "Shipment has no allocated stock items"
 msgstr ""
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1395 order/models.py:1397
 msgid "Stock item has not been assigned"
 msgstr ""
 
-#: order/models.py:1317
+#: order/models.py:1401
 msgid "Cannot allocate stock item to a line with a different part"
 msgstr ""
 
-#: order/models.py:1319
+#: order/models.py:1403
 msgid "Cannot allocate stock to a line without a part"
 msgstr ""
 
-#: order/models.py:1322
+#: order/models.py:1406
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr ""
 
-#: order/models.py:1326
+#: order/models.py:1410
 msgid "StockItem is over-allocated"
 msgstr ""
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1416 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr ""
 
-#: order/models.py:1335
+#: order/models.py:1419
 msgid "Sales order does not match shipment"
 msgstr ""
 
-#: order/models.py:1336
+#: order/models.py:1420
 msgid "Shipment does not match sales order"
 msgstr ""
 
-#: order/models.py:1344
+#: order/models.py:1428
 msgid "Line"
 msgstr ""
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr ""
 
-#: order/models.py:1353
+#: order/models.py:1437
 msgid "Sales order shipment reference"
 msgstr ""
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr ""
 
-#: order/models.py:1366
+#: order/models.py:1450
 msgid "Select stock item to allocate"
 msgstr ""
 
-#: order/models.py:1369
+#: order/models.py:1453
 msgid "Enter stock allocation quantity"
 msgstr ""
 
@@ -3662,7 +3642,7 @@ msgstr ""
 msgid "Purchase order must match supplier"
 msgstr ""
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr ""
 
@@ -3674,11 +3654,11 @@ msgstr ""
 msgid "Select destination location for received items"
 msgstr ""
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr "Введите код партии для поступающих единиц хранения"
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr ""
 
@@ -3714,35 +3694,35 @@ msgstr ""
 msgid "Sale price currency"
 msgstr "Курс продажи валюты"
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr ""
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr ""
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr ""
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr ""
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr ""
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr ""
 
@@ -3832,7 +3812,12 @@ msgstr ""
 msgid "Total cost"
 msgstr ""
 
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
 msgid "Edit Purchase Order"
 msgstr "Редактировать заказ на закупку"
 
@@ -3863,9 +3848,9 @@ msgstr "Выберите деталь поставщика"
 #: part/templates/part/import_wizard/ajax_match_references.html:42
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3929,7 +3914,7 @@ msgstr ""
 msgid "Order Notes"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
 msgid "Add Order Line"
 msgstr ""
 
@@ -3947,12 +3932,12 @@ msgid "Print packing list"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
 msgid "Complete Sales Order"
 msgstr ""
 
@@ -3961,7 +3946,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2471
 msgid "Customer Reference"
 msgstr ""
 
@@ -3971,7 +3956,7 @@ msgstr ""
 msgid "Completed Shipments"
 msgstr ""
 
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
 msgid "Edit Sales Order"
 msgstr ""
 
@@ -3985,7 +3970,7 @@ msgid "Pending Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
 msgid "Actions"
 msgstr "Действия"
 
@@ -4113,7 +4098,7 @@ msgid "Part Category"
 msgstr "Категория детали"
 
 #: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
 #: users/models.py:38
 msgid "Part Categories"
 msgstr ""
@@ -4124,7 +4109,7 @@ msgstr ""
 #: part/templates/part/category_sidebar.html:9
 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
 #: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
 #: templates/navbar.html:24 users/models.py:39
 msgid "Parts"
 msgstr "Детали"
@@ -4202,7 +4187,7 @@ msgstr "Категория"
 
 #: part/models.py:842 part/templates/part/part_base.html:266
 #: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
 msgid "IPN"
 msgstr ""
 
@@ -4316,7 +4301,7 @@ msgid "Test with this name already exists for this part"
 msgstr ""
 
 #: part/models.py:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
 msgid "Test Name"
 msgstr ""
 
@@ -4448,7 +4433,7 @@ msgid "BOM quantity for this BOM item"
 msgstr ""
 
 #: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
 #: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
@@ -4482,7 +4467,7 @@ msgid "BOM line checksum"
 msgstr ""
 
 #: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
 #: templates/js/translated/table_filters.js:68
 #: templates/js/translated/table_filters.js:88
 msgid "Inherited"
@@ -4493,7 +4478,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
 #: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
 msgid "Allow Variants"
 msgstr "Разрешить разновидности"
 
@@ -4714,6 +4699,11 @@ msgstr "Создать новую деталь"
 msgid "New Part"
 msgstr "Новая деталь"
 
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr "Настройки"
+
 #: part/templates/part/category.html:172
 msgid "Set category"
 msgstr "Укажите категорию"
@@ -4902,46 +4892,46 @@ msgstr ""
 msgid "Part Suppliers"
 msgstr "Поставщики"
 
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
 msgid "Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
 msgid "Add Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
@@ -5084,8 +5074,8 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
 #: templates/js/translated/model_renderers.js:192
 #: templates/js/translated/part.js:581 templates/js/translated/part.js:658
 msgid "Inactive"
@@ -5101,20 +5091,22 @@ msgstr ""
 msgid "This part is a variant of %(link)s"
 msgstr "Эта деталь является разновидностью %(link)s"
 
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr "На складе"
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr ""
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
 msgid "Can Build"
 msgstr ""
 
@@ -5133,7 +5125,7 @@ msgid "Latest Serial Number"
 msgstr ""
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr ""
 
@@ -5172,7 +5164,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -5291,7 +5283,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
 msgid "Supplier Cost"
 msgstr ""
 
@@ -5530,7 +5522,7 @@ msgstr ""
 msgid "Barcode associated with Stock Item"
 msgstr ""
 
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
 msgid "Label printing failed"
 msgstr ""
 
@@ -5770,12 +5762,12 @@ msgid "Stock Item Test Report"
 msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr "Серийный номер"
 
@@ -5796,7 +5788,7 @@ msgstr ""
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
 msgid "Date"
 msgstr ""
 
@@ -5815,7 +5807,7 @@ msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2589
 msgid "Serial"
 msgstr ""
 
@@ -5832,7 +5824,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr ""
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr ""
 
@@ -5894,7 +5886,7 @@ msgstr ""
 msgid "Packaging this stock item is stored in"
 msgstr ""
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr ""
 
@@ -5934,8 +5926,8 @@ msgstr ""
 msgid "Destination Sales Order"
 msgstr ""
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1816
 msgid "Expiry Date"
 msgstr ""
 
@@ -6215,11 +6207,11 @@ msgstr ""
 msgid "Installed Stock Items"
 msgstr "Установленные единицы хранения"
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
 msgid "Install Stock Item"
 msgstr "Установить единицу хранения"
 
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
 msgid "Add Test Result"
 msgstr ""
 
@@ -6311,110 +6303,114 @@ msgstr "Редактировать единицу хранения"
 msgid "Delete stock item"
 msgstr "Удалить единицу хранения"
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:244
-msgid "This stock item has not passed all required tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:252
-msgid "This stock item is allocated to Sales Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr "Родительский элемент"
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr ""
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:284
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:292
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1693
+msgid "No location set"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1832
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr ""
 
@@ -6486,8 +6482,8 @@ msgstr ""
 msgid "Sublocations"
 msgstr "Места хранения"
 
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:198 users/models.py:40
 msgid "Stock Locations"
 msgstr "Места хранения"
 
@@ -6539,7 +6535,7 @@ msgstr "Места хранения"
 msgid "Child Items"
 msgstr ""
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr ""
 
@@ -6564,55 +6560,55 @@ msgstr ""
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr ""
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr ""
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr ""
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr ""
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr ""
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr ""
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr ""
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr ""
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr ""
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr ""
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr ""
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr ""
 
@@ -7331,9 +7327,9 @@ msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr ""
@@ -7602,14 +7598,14 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
 #: templates/js/translated/part.js:530
 #: templates/js/translated/table_filters.js:178
 msgid "Available"
@@ -7644,67 +7640,67 @@ msgstr "Удалённый сервер должен быть доступен"
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
-#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
 msgid "No Response"
 msgstr ""
 
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
 msgid "No response from the InvenTree server"
 msgstr ""
 
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
 msgid "Error 400: Bad request"
 msgstr "Ошибка 400: Некорректный запрос"
 
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
 msgid "API request returned error code 400"
 msgstr "API-запрос вернул код ошибки 400"
 
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
 msgid "Error 401: Not Authenticated"
 msgstr "Ошибка 401: Авторизация не выполнена"
 
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
 msgid "Authentication credentials not supplied"
 msgstr ""
 
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
 msgid "Error 403: Permission Denied"
 msgstr "Ошибка 403: Доступ запрещён"
 
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
 msgid "You do not have the required permissions to access this function"
 msgstr "У вас нет прав доступа к этой функции"
 
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
 msgid "Error 404: Resource Not Found"
 msgstr "Ошибка 404: Ресурс не найден"
 
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
 msgid "The requested resource could not be located on the server"
 msgstr ""
 
-#: templates/js/translated/api.js:217
+#: templates/js/translated/api.js:262
 msgid "Error 405: Method Not Allowed"
 msgstr "Ошибка 405: Метод не разрешён"
 
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
 msgid "HTTP method not allowed at URL"
 msgstr ""
 
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
 msgid "Error 408: Timeout"
 msgstr "Ошибка 408: Таймаут"
 
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
 msgid "Connection timeout while requesting data from server"
 msgstr ""
 
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
 msgid "Unhandled Error Code"
 msgstr "Необработанная ошибка"
 
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
 msgid "Error code"
 msgstr "Код ошибки"
 
@@ -7765,7 +7761,7 @@ msgid "Unknown response from server"
 msgstr ""
 
 #: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "Invalid server response"
 msgstr ""
 
@@ -7847,12 +7843,12 @@ msgid "Download BOM Template"
 msgstr "Скачать шаблон BOM"
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
 msgid "Format"
 msgstr ""
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr ""
 
@@ -7932,84 +7928,84 @@ msgstr ""
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
 msgid "Load BOM for subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
 msgid "No Stock Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
 msgid "Includes variant and substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
 #: templates/js/translated/part.js:690
 msgid "Includes variant stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
 msgid "Includes substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
 msgid "Edit BOM Item"
 msgstr "Редактировать элемент BOM"
 
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
 msgid "Delete BOM Item"
 msgstr "Удалить элемент BOM"
 
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
 msgid "No BOM items found"
 msgstr "Элементы BOM не найдены"
 
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
 msgid "Inherited from parent BOM"
 msgstr "Унаследовано от родительского BOM"
 
@@ -8131,262 +8127,270 @@ msgstr ""
 msgid "Location not specified"
 msgstr ""
 
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
 msgid "No active build outputs found"
 msgstr ""
 
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
 msgid "Allocated Stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
 msgid "No tracked BOM items for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
 msgid "Completed Tests"
 msgstr ""
 
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
 msgid "No required tests for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
 msgid "Edit stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
 msgid "Delete stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
 msgid "Edit Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
 msgid "Remove Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
 msgid "Substitute parts available"
 msgstr ""
 
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
 msgid "Quantity Per"
 msgstr ""
 
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
 msgid "Insufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
 msgid "Sufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
 msgid "Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
 msgid "Build stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
 msgid "Order stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
 msgid "Allocate stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr ""
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
 msgid "You must select at least one part to allocate"
 msgstr ""
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
 msgid "All Parts Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
 msgid "All selected parts have been fully allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
 msgid "Select source location (leave blank to take from all locations)"
 msgstr ""
 
-#: templates/js/translated/build.js:2117
+#: templates/js/translated/build.js:2100
 msgid "Allocate Stock Items to Build Order"
 msgstr ""
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
 msgid "No matching stock locations"
 msgstr ""
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
 msgid "No matching stock items"
 msgstr ""
 
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
 msgid "Automatic Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
 msgstr ""
 
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
 msgid "If a location is specifed, stock will only be allocated from that location"
 msgstr ""
 
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
 msgstr ""
 
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
 msgstr ""
 
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
 msgid "Allocate Stock Items"
 msgstr ""
 
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
 msgid "Select"
 msgstr ""
 
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
 msgid "Build order is overdue"
 msgstr ""
 
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
 msgid "Progress"
 msgstr ""
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
 msgid "No information"
 msgstr ""
 
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
 msgid "No parts allocated for"
 msgstr ""
 
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
 msgid "Add Manufacturer"
 msgstr "Добавить производителя"
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
 msgid "Add Manufacturer Part"
 msgstr "Добавить деталь производителя"
 
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
 msgid "Edit Manufacturer Part"
 msgstr "Редактировать деталь производителя"
 
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr "Удалить деталь производителя"
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr "Добавить поставщика"
 
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
 msgid "Add Supplier Part"
 msgstr "Добавить деталь поставщика"
 
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
 msgid "Edit Supplier Part"
 msgstr "Редактировать деталь поставщика"
 
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
-msgstr "Удалить деталь поставщика"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
+msgstr "Все выбранные детали поставщика будут удалены"
 
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:342
 msgid "Add new Company"
 msgstr "Добавить новую компанию"
 
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
 msgid "No company information found"
 msgstr "Информация о компании не найдена"
 
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr "Удалить параметры"
+
+#: templates/js/translated/company.js:595
 msgid "No manufacturer parts found"
 msgstr "Информация о детали производителя не найдена"
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
 #: templates/js/translated/part.js:650
 msgid "Template part"
 msgstr "Деталь-шаблон"
 
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
 #: templates/js/translated/part.js:654
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
 msgid "No parameters found"
 msgstr "Параметры не найдены"
 
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
 msgid "Edit parameter"
 msgstr "Редактировать параметр"
 
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
 msgid "Delete parameter"
 msgstr "Удалить параметр"
 
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
 msgid "Edit Parameter"
 msgstr "Редактировать параметр"
 
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
 msgid "Delete Parameter"
 msgstr "Удалить параметр"
 
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
 msgid "No supplier parts found"
 msgstr "Информация о детали поставщика не найдена"
 
@@ -8424,61 +8428,61 @@ msgstr ""
 msgid "Create filter"
 msgstr ""
 
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
 msgid "Action Prohibited"
 msgstr ""
 
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
 msgid "Create operation not allowed"
 msgstr "Операция создания не разрешена"
 
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
 msgid "Update operation not allowed"
 msgstr "Операция обновления не разрешена"
 
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
 msgid "Delete operation not allowed"
 msgstr "Операция удаления не разрешена"
 
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
 msgid "View operation not allowed"
 msgstr "Операция просмотра не разрешена"
 
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
 msgid "Keep this form open"
 msgstr ""
 
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
 msgid "Enter a valid number"
 msgstr ""
 
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
 #: templates/modals.html:43
 msgid "Form errors exist"
 msgstr "Форма содержит ошибки"
 
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
 msgid "No results found"
 msgstr "Не найдено"
 
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
 msgid "Searching"
 msgstr ""
 
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
 msgid "Clear input"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "File Column"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "Field Name"
 msgstr ""
 
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
 msgid "Select Columns"
 msgstr ""
 
@@ -8552,62 +8556,62 @@ msgstr ""
 msgid "Select Label Template"
 msgstr ""
 
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
 msgid "Cancel"
 msgstr "Отменить"
 
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
 #: templates/modals.html:28 templates/modals.html:51
 msgid "Submit"
 msgstr "Подтвердить"
 
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
 msgid "Form Title"
 msgstr ""
 
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
 msgid "Waiting for server..."
 msgstr ""
 
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
 msgid "Show Error Information"
 msgstr ""
 
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
 msgid "Accept"
 msgstr ""
 
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
 msgid "Loading Data"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Invalid response from server"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Form data missing from server response"
 msgstr ""
 
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
 msgid "Error posting form data"
 msgstr "Ошибка отправки данных формы"
 
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "JSON response missing form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
 msgid "Error 400: Bad Request"
 msgstr "Ошибка 400: Некорректный запрос"
 
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
 msgid "Server returned error code 400"
 msgstr "Сервер вернул код ошибки 400"
 
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
 msgid "Error requesting form data"
 msgstr "Ошибка запроса данных формы"
 
@@ -8665,377 +8669,381 @@ msgstr ""
 msgid "Notifications will load here"
 msgstr ""
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
 msgstr ""
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
 msgstr ""
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr ""
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr ""
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr ""
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr ""
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr ""
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr "Отмена этого заказа означает, что заказ нельзя будет редактировать."
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr ""
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr ""
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr ""
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr ""
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr ""
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr "Добавить код партии"
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
 msgid "Stock Status"
 msgstr ""
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr ""
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr ""
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr ""
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr "Заказов на закупку не найдено"
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
 msgid "Order is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
 msgid "Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
 msgid "Duplicate Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
 msgid "Edit Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
 msgid "Delete Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1856
 msgid "No line items found"
 msgstr ""
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
 msgid "Total"
 msgstr ""
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
 msgid "Total Price"
 msgstr "Общая стоимость"
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
 msgid "Duplicate line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
 msgid "Edit line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
 msgid "Delete line item"
 msgstr ""
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
 msgid "Duplicate line"
 msgstr ""
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
 msgid "Edit line"
 msgstr ""
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
 msgid "Delete line"
 msgstr ""
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
 msgid "Duplicate Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
 msgid "Edit Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
 msgid "Delete Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2279
 msgid "No matching line"
 msgstr ""
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2392
 msgid "No sales orders found"
 msgstr "Заказы на продажу не найдены"
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2462
 msgid "Invalid Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2549
 msgid "Edit shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2552
 msgid "Complete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2557
 msgid "Delete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2577
 msgid "Edit Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2594
 msgid "Delete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2628
 msgid "No matching shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2638
 msgid "Shipment Reference"
 msgstr ""
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2662
 msgid "Not shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2668
 msgid "Tracking"
 msgstr ""
 
-#: templates/js/translated/order.js:2603
+#: templates/js/translated/order.js:2672
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:2841
 msgid "Add Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2892
 msgid "Confirm stock allocation"
 msgstr "Подтвердите выделение запасов"
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2893
 msgid "Allocate Stock Items to Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:3101
 msgid "No sales order allocations found"
 msgstr ""
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:3182
 msgid "Edit Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:3199
 msgid "Confirm Delete Operation"
 msgstr ""
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:3200
 msgid "Delete Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
 msgid "Shipped to customer"
 msgstr ""
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
 msgid "Stock location not specified"
 msgstr ""
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3623
 msgid "Allocate serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3629
 msgid "Purchase stock"
 msgstr ""
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
 msgid "Calculate price"
 msgstr ""
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3648
 msgid "Cannot be deleted as items have been shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3651
 msgid "Cannot be deleted as items have been allocated"
 msgstr ""
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3733
 msgid "Allocate Serial Numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3842
 msgid "Update Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3856
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:4092
 msgid "No matching lines"
 msgstr ""
 
@@ -9217,7 +9225,7 @@ msgid "No category"
 msgstr "Нет категории"
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2238
 msgid "Display as list"
 msgstr "Список"
 
@@ -9225,7 +9233,7 @@ msgstr "Список"
 msgid "Display as grid"
 msgstr "Таблица"
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
 msgid "Display as tree"
 msgstr "Дерево"
 
@@ -9233,7 +9241,7 @@ msgstr "Дерево"
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
 msgid "Path"
 msgstr "Путь"
 
@@ -9241,12 +9249,12 @@ msgstr "Путь"
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
 msgid "Delete test result"
 msgstr ""
 
@@ -9367,11 +9375,11 @@ msgstr "Выберите заказ на продажу"
 msgid "Sales Order(s) must be selected before printing report"
 msgstr ""
 
-#: templates/js/translated/search.js:307
+#: templates/js/translated/search.js:352
 msgid "Minimize results"
 msgstr ""
 
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:355
 msgid "Remove results"
 msgstr ""
 
@@ -9531,204 +9539,204 @@ msgstr ""
 msgid "Confirm stock adjustment"
 msgstr ""
 
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
 msgid "PASS"
 msgstr ""
 
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
 msgid "FAIL"
 msgstr ""
 
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
 msgid "NO RESULT"
 msgstr ""
 
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
 msgid "Pass test"
 msgstr ""
 
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
 msgid "Add test result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
 msgid "No test results found"
 msgstr ""
 
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
 msgid "Test Date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
 msgid "Edit Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
 msgid "Delete Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
 msgid "In production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
 msgid "Installed in Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
 msgid "Assigned to Sales Order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
 msgid "No stock location set"
 msgstr ""
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1712
 msgid "Stock item is in production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1717
 msgid "Stock item assigned to sales order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1720
 msgid "Stock item assigned to customer"
 msgstr ""
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr ""
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr ""
-
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
 msgid "Serialized stock item has been allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
 msgid "Stock item has been fully allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
 msgid "Stock item has been partially allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1730
 msgid "Stock item has been installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1734
+msgid "Stock item has expired"
+msgstr ""
+
+#: templates/js/translated/stock.js:1736
+msgid "Stock item will expire soon"
+msgstr ""
+
+#: templates/js/translated/stock.js:1743
 msgid "Stock item has been rejected"
 msgstr ""
 
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1745
 msgid "Stock item is lost"
 msgstr ""
 
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1747
 msgid "Stock item is destroyed"
 msgstr ""
 
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1751
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr ""
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1802
 msgid "Stocktake"
 msgstr ""
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1884
 msgid "Supplier part not specified"
 msgstr ""
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1922
 msgid "No stock items matching query"
 msgstr ""
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2095
 msgid "Set Stock Status"
 msgstr ""
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2109
 msgid "Select Status Code"
 msgstr ""
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2110
 msgid "Status code must be selected"
 msgstr ""
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2365
 msgid "Details"
 msgstr ""
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2381
 msgid "Part information unavailable"
 msgstr ""
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2403
 msgid "Location no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2422
 msgid "Purchase order no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
 msgid "Customer no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2459
 msgid "Stock item no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2482
 msgid "Added"
 msgstr ""
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2490
 msgid "Removed"
 msgstr ""
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2566
 msgid "No installed items"
 msgstr ""
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
 msgid "Uninstall Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2666
 msgid "Select stock item to uninstall"
 msgstr ""
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2687
 msgid "Install another stock item into this item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2688
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr ""
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2690
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2691
 msgid "The Stock Item is currently available in stock"
 msgstr ""
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2692
 msgid "The Stock Item is not already installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2693
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr ""
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2706
 msgid "Select part to install"
 msgstr ""
 
@@ -9960,69 +9968,81 @@ msgstr ""
 msgid "Purchasable"
 msgstr ""
 
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr ""
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr ""
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
 msgid "Export Table Data"
 msgstr ""
 
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
 msgid "Select File Format"
 msgstr ""
 
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
 msgid "Loading data"
 msgstr "Загрузка данных"
 
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
 msgid "rows per page"
 msgstr "строк на странице"
 
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
 msgid "Showing all rows"
 msgstr "Показываются все строки"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "Showing"
 msgstr "Показано от"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "to"
 msgstr "до"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "of"
 msgstr "из"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "rows"
 msgstr "строк"
 
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
 #: templates/search.html:8 templates/search_form.html:6
 #: templates/search_form.html:7
 msgid "Search"
 msgstr "Поиск"
 
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
 msgid "No matching results"
 msgstr "Ничего не найдено"
 
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
 msgid "Hide/Show pagination"
 msgstr ""
 
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
 msgid "Refresh"
 msgstr "Обновить"
 
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
 msgid "Toggle"
 msgstr ""
 
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
 msgid "Columns"
 msgstr ""
 
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
 msgid "All"
 msgstr ""
 
diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po
index 55366dbf9a..20434e424a 100644
--- a/InvenTree/locale/sv/LC_MESSAGES/django.po
+++ b/InvenTree/locale/sv/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
-"PO-Revision-Date: 2022-05-24 01:42\n"
+"POT-Creation-Date: 2022-05-28 23:41+0000\n"
+"PO-Revision-Date: 2022-05-29 01:47\n"
 "Last-Translator: \n"
 "Language-Team: Swedish\n"
 "Language: sv_SE\n"
@@ -21,7 +21,7 @@ msgstr ""
 msgid "API endpoint not found"
 msgstr "API-slutpunkt hittades inte"
 
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
 msgid "Error details can be found in the admin panel"
 msgstr ""
 
@@ -30,7 +30,7 @@ msgid "Enter date"
 msgstr "Ange datum"
 
 #: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
 msgid "Confirm"
 msgstr "Bekräfta"
 
@@ -79,7 +79,7 @@ msgstr ""
 msgid "Duplicate serial: {sn}"
 msgstr ""
 
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
 msgid "Invalid quantity provided"
 msgstr "Ogiltigt antal angivet"
 
@@ -134,10 +134,12 @@ msgid "Select file to attach"
 msgstr "Välj fil att bifoga"
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:139 order/models.py:1273
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr ""
 
@@ -159,7 +161,7 @@ msgstr "Fil kommentar"
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2513
 msgid "User"
 msgstr "Användare"
 
@@ -205,9 +207,10 @@ msgstr "Ogiltigt val"
 #: templates/InvenTree/settings/plugin.html:132
 #: templates/InvenTree/settings/plugin_settings.html:23
 #: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2283
 msgid "Name"
 msgstr "Namn"
 
@@ -216,22 +219,22 @@ msgstr "Namn"
 #: company/models.py:575 company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
 #: part/templates/part/part_base.html:167
 #: part/templates/part/set_category.html:14 report/models.py:182
 #: report/models.py:547 report/models.py:586
 #: report/templates/report/inventree_build_order_base.html:118
 #: stock/templates/stock/location.html:103
 #: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
 msgid "Description"
 msgstr "Beskrivning"
 
@@ -406,7 +409,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:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
 msgid "Pending"
 msgstr "Väntar"
 
@@ -414,141 +417,145 @@ msgstr "Väntar"
 msgid "Placed"
 msgstr "Placerad"
 
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
 #: order/templates/order/order_base.html:134
 #: order/templates/order/sales_order_base.html:133
 msgid "Complete"
 msgstr "Slutför"
 
 #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
 msgid "Cancelled"
 msgstr "Avbruten"
 
 #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
 msgid "Lost"
 msgstr "Förlorad"
 
 #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
 msgid "Returned"
 msgstr "Återlämnad"
 
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
 msgid "Shipped"
 msgstr "Skickad"
 
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
 msgid "OK"
 msgstr ""
 
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
 msgid "Attention needed"
 msgstr ""
 
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
 msgid "Damaged"
 msgstr "Skadad"
 
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
 msgid "Destroyed"
 msgstr "Förstörd"
 
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
 msgid "Rejected"
 msgstr "Avvisad"
 
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
 msgid "Legacy stock tracking entry"
 msgstr ""
 
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
 msgid "Stock item created"
 msgstr ""
 
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
 msgid "Edited stock item"
 msgstr ""
 
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
 msgid "Assigned serial number"
 msgstr ""
 
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
 msgid "Stock counted"
 msgstr ""
 
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
 msgid "Stock manually added"
 msgstr ""
 
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
 msgid "Stock manually removed"
 msgstr ""
 
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
 msgid "Location changed"
 msgstr ""
 
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
 msgid "Installed into assembly"
 msgstr ""
 
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
 msgid "Removed from assembly"
 msgstr ""
 
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
 msgid "Installed component item"
 msgstr ""
 
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
 msgid "Removed component item"
 msgstr ""
 
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
 msgid "Split from parent item"
 msgstr ""
 
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
 msgid "Merged stock items"
 msgstr ""
 
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
 msgid "Converted to variant"
 msgstr ""
 
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
 msgid "Sent to customer"
 msgstr ""
 
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
 msgid "Returned from customer"
 msgstr ""
 
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
 msgid "Build order output created"
 msgstr ""
 
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
 msgid "Build order output completed"
 msgstr ""
 
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
 msgid "Consumed by build order"
 msgstr ""
 
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
 msgid "Received against purchase order"
 msgstr ""
 
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
 msgid "Production"
 msgstr ""
 
@@ -637,15 +644,15 @@ msgstr ""
 msgid "Build Order Reference"
 msgstr ""
 
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
 #: part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
 msgid "Reference"
 msgstr ""
 
@@ -664,7 +671,7 @@ msgstr ""
 
 #: build/models.py:225 build/templates/build/build_base.html:77
 #: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
 #: part/models.py:2303 part/models.py:2319 part/models.py:2338
 #: part/models.py:2355 part/models.py:2457 part/models.py:2579
 #: part/models.py:2669 part/models.py:2760 part/models.py:3050
@@ -679,19 +686,21 @@ msgstr ""
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
 #: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
 msgid "Part"
 msgstr ""
 
@@ -708,7 +717,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr ""
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
 msgid "Source Location"
 msgstr ""
 
@@ -749,7 +758,7 @@ msgid "Build status code"
 msgstr ""
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr ""
 
@@ -757,12 +766,12 @@ msgstr ""
 msgid "Batch code for this build output"
 msgstr ""
 
-#: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
 msgid "Creation Date"
 msgstr ""
 
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
 msgid "Target completion date"
 msgstr ""
 
@@ -770,8 +779,8 @@ msgstr ""
 msgid "Target date for build completion. Build will be overdue after this date."
 msgstr ""
 
-#: build/models.py:300 order/models.py:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
 msgid "Completion Date"
 msgstr ""
 
@@ -779,7 +788,7 @@ msgstr ""
 msgid "completed by"
 msgstr ""
 
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
 msgid "Issued by"
 msgstr ""
 
@@ -788,11 +797,11 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
 msgid "Responsible"
 msgstr ""
 
@@ -804,14 +813,14 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr ""
 
 #: build/models.py:334 build/serializers.py:390
 #: build/templates/build/sidebar.html:21 company/models.py:134
 #: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
 #: order/templates/order/po_sidebar.html:11
 #: order/templates/order/so_sidebar.html:17 part/models.py:983
 #: part/templates/part/part_sidebar.html:59
@@ -820,11 +829,11 @@ msgstr ""
 #: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
 msgid "Notes"
 msgstr ""
 
@@ -857,7 +866,7 @@ msgstr ""
 msgid "Stock item is over-allocated"
 msgstr ""
 
-#: build/models.py:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1413
 msgid "Allocation quantity must be greater than zero"
 msgstr ""
 
@@ -869,8 +878,8 @@ msgstr ""
 msgid "Selected stock item not found in BOM"
 msgstr ""
 
-#: build/models.py:1375 stock/templates/stock/item_base.html:335
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
 #: templates/navbar.html:38
 msgid "Build"
 msgstr ""
@@ -879,18 +888,18 @@ msgstr ""
 msgid "Build to allocate parts"
 msgstr ""
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2449
 msgid "Stock Item"
 msgstr ""
 
@@ -902,10 +911,10 @@ msgstr ""
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_build_order_base.html:114
@@ -913,25 +922,24 @@ 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
 msgid "Quantity"
 msgstr ""
 
@@ -948,7 +956,7 @@ msgid "Destination stock item"
 msgstr ""
 
 #: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
 msgid "Build Output"
 msgstr ""
 
@@ -972,7 +980,7 @@ msgstr ""
 msgid "Enter quantity for build output"
 msgstr ""
 
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
 #: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
 #: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
 #: stock/serializers.py:294
@@ -987,8 +995,8 @@ msgstr ""
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr ""
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr ""
@@ -1015,15 +1023,15 @@ msgstr ""
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
 msgid "Location"
 msgstr ""
 
@@ -1032,12 +1040,12 @@ msgid "Location for completed build outputs"
 msgstr ""
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: build/templates/build/detail.html:62 order/models.py:663
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
 msgid "Status"
 msgstr ""
 
@@ -1118,7 +1126,7 @@ msgstr ""
 msgid "Item must be in stock"
 msgstr ""
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr ""
@@ -1135,7 +1143,7 @@ msgstr ""
 msgid "This stock item has already been allocated to this build output"
 msgstr ""
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr ""
 
@@ -1233,13 +1241,13 @@ msgid "Stock has not been fully allocated to this Build Order"
 msgstr ""
 
 #: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr ""
 
@@ -1266,14 +1274,14 @@ msgid "Completed"
 msgstr ""
 
 #: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2436
 msgid "Sales Order"
 msgstr ""
 
@@ -1308,8 +1316,8 @@ msgstr ""
 msgid "Stock can be taken from any available location."
 msgstr ""
 
-#: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
 msgid "Destination"
 msgstr ""
 
@@ -1322,11 +1330,11 @@ msgid "Allocated Parts"
 msgstr ""
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
-#: templates/js/translated/build.js:1184
+#: stock/templates/stock/item_base.html:170
+#: templates/js/translated/build.js:1179
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1335,7 +1343,7 @@ msgstr ""
 #: build/templates/build/detail.html:126
 #: order/templates/order/order_base.html:149
 #: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
 msgid "Created"
 msgstr ""
 
@@ -1355,7 +1363,7 @@ msgstr ""
 msgid "Allocate Stock to Build"
 msgstr ""
 
-#: build/templates/build/detail.html:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
 msgid "Unallocate stock"
 msgstr ""
 
@@ -1385,8 +1393,8 @@ msgstr ""
 
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: company/templates/company/detail.html:85
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr ""
 
@@ -1461,8 +1469,8 @@ msgid "Completed Build Outputs"
 msgstr ""
 
 #: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
 #: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:82
 #: order/templates/order/sales_order_detail.html:129
@@ -1476,11 +1484,11 @@ msgstr ""
 msgid "Build Notes"
 msgstr ""
 
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
 msgid "Allocation Complete"
 msgstr ""
 
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
@@ -1492,18 +1500,6 @@ msgstr ""
 msgid "Print Build Orders"
 msgstr ""
 
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr ""
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr ""
-
 #: build/templates/build/sidebar.html:5
 msgid "Build Order Details"
 msgstr ""
@@ -1727,7 +1723,7 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
 #: templates/js/translated/table_filters.js:168
 #: templates/js/translated/table_filters.js:460
 msgid "Assembly"
@@ -2413,7 +2409,7 @@ msgid "Price break quantity"
 msgstr ""
 
 #: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: company/templates/company/supplier_part.html:263 order/models.py:975
 #: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
 msgid "Price"
 msgstr ""
@@ -2556,7 +2552,7 @@ msgstr ""
 
 #: company/models.py:104 company/templates/company/company_base.html:100
 #: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
 msgid "Website"
 msgstr ""
 
@@ -2651,10 +2647,11 @@ msgstr ""
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: stock/templates/stock/item_base.html:212
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
 #: templates/js/translated/table_filters.js:411
 msgid "Manufacturer"
 msgstr ""
@@ -2665,8 +2662,10 @@ msgstr ""
 
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr ""
@@ -2686,7 +2685,7 @@ msgstr ""
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr ""
 
@@ -2696,8 +2695,9 @@ msgstr ""
 
 #: company/models.py:427
 #: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
 msgid "Value"
 msgstr ""
 
@@ -2708,7 +2708,7 @@ msgstr ""
 #: company/models.py:434 part/models.py:940 part/models.py:2549
 #: part/templates/part/part_base.html:280
 #: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
 msgid "Units"
 msgstr ""
 
@@ -2721,11 +2721,12 @@ msgid "Linked manufacturer part must reference the same base part"
 msgstr ""
 
 #: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: stock/templates/stock/item_base.html:229
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2736,8 +2737,9 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
 msgid "SKU"
 msgstr ""
 
@@ -2773,8 +2775,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr ""
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
 msgid "Packaging"
 msgstr ""
 
@@ -2804,12 +2806,12 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
 msgid "Company"
 msgstr ""
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr ""
 
@@ -2822,7 +2824,7 @@ msgid "Edit company information"
 msgstr ""
 
 #: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
 msgid "Edit Company"
 msgstr ""
 
@@ -2845,12 +2847,12 @@ msgstr ""
 msgid "Download image from URL"
 msgstr ""
 
-#: company/templates/company/company_base.html:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr ""
@@ -2869,7 +2871,7 @@ msgid "Upload Image"
 msgstr ""
 
 #: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
+#: company/templates/company/manufacturer_part_sidebar.html:7
 #: templates/InvenTree/search.html:118
 msgid "Supplier Parts"
 msgstr ""
@@ -2884,28 +2886,19 @@ msgstr ""
 msgid "New Supplier Part"
 msgstr ""
 
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr ""
-
 #: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
 #: part/templates/part/category.html:176
 msgid "Order parts"
 msgstr ""
 
 #: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
 msgid "Delete parts"
 msgstr ""
 
 #: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
 msgid "Delete Parts"
 msgstr ""
 
@@ -2917,88 +2910,76 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
 msgid "New Manufacturer Part"
 msgstr ""
 
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
 msgid "Supplier Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
 #: company/templates/company/sidebar.html:12
 #: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
 #: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:235 templates/navbar.html:50
 #: users/models.py:43
 msgid "Purchase Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
 #: order/templates/order/purchase_orders.html:17
 msgid "Create new purchase order"
 msgstr ""
 
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr ""
 
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
 #: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
 #: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
 #: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:259 templates/navbar.html:61
 #: users/models.py:44
 msgid "Sales Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
 #: order/templates/order/sales_orders.html:20
 msgid "Create new sales order"
 msgstr ""
 
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
 #: order/templates/order/sales_orders.html:21
 msgid "New Sales Order"
 msgstr ""
 
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
 msgid "Assigned Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
 msgid "Company Notes"
 msgstr ""
 
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr ""
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr ""
-
 #: company/templates/company/index.html:8
 msgid "Supplier List"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
 #: templates/navbar.html:49
 msgid "Manufacturers"
 msgstr ""
@@ -3011,12 +2992,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -3032,55 +3013,46 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:119
 #: company/templates/company/supplier_part.html:15 company/views.py:41
 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
 msgid "Suppliers"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
 #: part/templates/part/detail.html:363
 msgid "Delete supplier parts"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
 msgid "Delete"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:164
+#: company/templates/company/manufacturer_part.html:166
 #: company/templates/company/manufacturer_part_sidebar.html:5
 #: part/templates/part/category_sidebar.html:19
 #: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8
 msgid "Parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
 #: part/templates/part/detail.html:184
 #: templates/InvenTree/settings/category.html:12
 #: templates/InvenTree/settings/part.html:66
 msgid "New Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
 msgid "Delete parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
 msgid "Add Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr ""
-
 #: company/templates/company/sidebar.html:6
 msgid "Manufactured Parts"
 msgstr ""
@@ -3099,19 +3071,19 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
 msgid "Delete supplier part"
 msgstr ""
 
@@ -3186,11 +3158,11 @@ msgstr ""
 #: part/templates/part/part_sidebar.html:14
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
 #: templates/InvenTree/settings/sidebar.html:43
 #: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
 #: templates/navbar.html:31
 msgid "Stock"
 msgstr ""
@@ -3216,8 +3188,8 @@ msgstr ""
 #: stock/templates/stock/location.html:161
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
+#: templates/js/translated/stock.js:2307 users/models.py:41
 msgid "Stock Items"
 msgstr ""
 
@@ -3229,7 +3201,7 @@ msgstr ""
 msgid "New Manufacturer"
 msgstr ""
 
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
 #: templates/navbar.html:60
 msgid "Customers"
 msgstr ""
@@ -3238,7 +3210,7 @@ msgstr ""
 msgid "New Customer"
 msgstr ""
 
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:212
 msgid "Companies"
 msgstr ""
 
@@ -3328,305 +3300,313 @@ msgstr ""
 msgid "Part query filters (comma-separated value of key=value pairs)"
 msgstr ""
 
-#: order/models.py:130
+#: order/models.py:137
 msgid "Order description"
 msgstr ""
 
-#: order/models.py:132
+#: order/models.py:139 order/models.py:1274
 msgid "Link to external page"
 msgstr ""
 
-#: order/models.py:140
+#: order/models.py:147
 msgid "Created By"
 msgstr ""
 
-#: order/models.py:147
+#: order/models.py:154
 msgid "User or group responsible for this order"
 msgstr ""
 
-#: order/models.py:152
+#: order/models.py:159
 msgid "Order notes"
 msgstr ""
 
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
 msgid "Order reference"
 msgstr ""
 
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
 msgid "Purchase order status"
 msgstr ""
 
-#: order/models.py:253
+#: order/models.py:311
 msgid "Company from which the items are being ordered"
 msgstr ""
 
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
 msgid "Supplier Reference"
 msgstr ""
 
-#: order/models.py:256
+#: order/models.py:314
 msgid "Supplier order reference code"
 msgstr ""
 
-#: order/models.py:263
+#: order/models.py:321
 msgid "received by"
 msgstr ""
 
-#: order/models.py:268
+#: order/models.py:326
 msgid "Issue Date"
 msgstr ""
 
-#: order/models.py:269
+#: order/models.py:327
 msgid "Date order was issued"
 msgstr ""
 
-#: order/models.py:274
+#: order/models.py:332
 msgid "Target Delivery Date"
 msgstr ""
 
-#: order/models.py:275
+#: order/models.py:333
 msgid "Expected date for order delivery. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:281
+#: order/models.py:339
 msgid "Date order was completed"
 msgstr ""
 
-#: order/models.py:310
+#: order/models.py:368
 msgid "Part supplier must match PO supplier"
 msgstr ""
 
-#: order/models.py:456
+#: order/models.py:514
 msgid "Quantity must be a positive number"
 msgstr ""
 
-#: order/models.py:601
+#: order/models.py:659
 msgid "Company to which the items are being sold"
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer Reference "
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer order reference code"
 msgstr ""
 
-#: order/models.py:612
+#: order/models.py:670
 msgid "Target date for order completion. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
 msgid "Shipment Date"
 msgstr ""
 
-#: order/models.py:622
+#: order/models.py:680
 msgid "shipped by"
 msgstr ""
 
-#: order/models.py:688
+#: order/models.py:746
 msgid "Order cannot be completed as no parts have been assigned"
 msgstr ""
 
-#: order/models.py:692
+#: order/models.py:750
 msgid "Only a pending order can be marked as complete"
 msgstr ""
 
-#: order/models.py:695
+#: order/models.py:753
 msgid "Order cannot be completed as there are incomplete shipments"
 msgstr ""
 
-#: order/models.py:698
+#: order/models.py:756
 msgid "Order cannot be completed as there are incomplete line items"
 msgstr ""
 
-#: order/models.py:878
+#: order/models.py:936
 msgid "Item quantity"
 msgstr ""
 
-#: order/models.py:884
+#: order/models.py:942
 msgid "Line item reference"
 msgstr ""
 
-#: order/models.py:886
+#: order/models.py:944
 msgid "Line item notes"
 msgstr ""
 
-#: order/models.py:891
+#: order/models.py:949
 msgid "Target shipping date for this line item"
 msgstr ""
 
-#: order/models.py:909
+#: order/models.py:967
 msgid "Context"
 msgstr ""
 
-#: order/models.py:910
+#: order/models.py:968
 msgid "Additional context for this line"
 msgstr ""
 
-#: order/models.py:918
+#: order/models.py:976
 msgid "Unit price"
 msgstr ""
 
-#: order/models.py:951
+#: order/models.py:1009
 msgid "Supplier part must match supplier"
 msgstr ""
 
-#: order/models.py:958
+#: order/models.py:1016
 msgid "deleted"
 msgstr ""
 
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
 msgid "Order"
 msgstr ""
 
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
 msgid "Purchase Order"
 msgstr ""
 
-#: order/models.py:984
+#: order/models.py:1042
 msgid "Supplier part"
 msgstr ""
 
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
 msgstr ""
 
-#: order/models.py:992
+#: order/models.py:1050
 msgid "Number of items received"
 msgstr ""
 
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1900
 msgid "Purchase Price"
 msgstr ""
 
-#: order/models.py:1000
+#: order/models.py:1058
 msgid "Unit purchase price"
 msgstr ""
 
-#: order/models.py:1008
+#: order/models.py:1066
 msgid "Where does the Purchaser want this item to be stored?"
 msgstr ""
 
-#: order/models.py:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
 #: part/templates/part/prices.html:119 part/templates/part/prices.html:288
 msgid "Sale Price"
 msgstr ""
 
-#: order/models.py:1079
+#: order/models.py:1137
 msgid "Unit sale price"
 msgstr ""
 
-#: order/models.py:1084
+#: order/models.py:1142
 msgid "Shipped quantity"
 msgstr ""
 
-#: order/models.py:1171
+#: order/models.py:1229
 msgid "Date of shipment"
 msgstr ""
 
-#: order/models.py:1178
+#: order/models.py:1236
 msgid "Checked By"
 msgstr ""
 
-#: order/models.py:1179
+#: order/models.py:1237
 msgid "User who checked this shipment"
 msgstr ""
 
-#: order/models.py:1187
+#: order/models.py:1245
 msgid "Shipment number"
 msgstr ""
 
-#: order/models.py:1194
+#: order/models.py:1252
 msgid "Shipment notes"
 msgstr ""
 
-#: order/models.py:1201
+#: order/models.py:1259
 msgid "Tracking Number"
 msgstr ""
 
-#: order/models.py:1202
+#: order/models.py:1260
 msgid "Shipment tracking information"
 msgstr ""
 
-#: order/models.py:1213
+#: order/models.py:1267
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1268
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1285
 msgid "Shipment has already been sent"
 msgstr ""
 
-#: order/models.py:1216
+#: order/models.py:1288
 msgid "Shipment has no allocated stock items"
 msgstr ""
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1395 order/models.py:1397
 msgid "Stock item has not been assigned"
 msgstr ""
 
-#: order/models.py:1317
+#: order/models.py:1401
 msgid "Cannot allocate stock item to a line with a different part"
 msgstr ""
 
-#: order/models.py:1319
+#: order/models.py:1403
 msgid "Cannot allocate stock to a line without a part"
 msgstr ""
 
-#: order/models.py:1322
+#: order/models.py:1406
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr ""
 
-#: order/models.py:1326
+#: order/models.py:1410
 msgid "StockItem is over-allocated"
 msgstr ""
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1416 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr ""
 
-#: order/models.py:1335
+#: order/models.py:1419
 msgid "Sales order does not match shipment"
 msgstr ""
 
-#: order/models.py:1336
+#: order/models.py:1420
 msgid "Shipment does not match sales order"
 msgstr ""
 
-#: order/models.py:1344
+#: order/models.py:1428
 msgid "Line"
 msgstr ""
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr ""
 
-#: order/models.py:1353
+#: order/models.py:1437
 msgid "Sales order shipment reference"
 msgstr ""
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr ""
 
-#: order/models.py:1366
+#: order/models.py:1450
 msgid "Select stock item to allocate"
 msgstr ""
 
-#: order/models.py:1369
+#: order/models.py:1453
 msgid "Enter stock allocation quantity"
 msgstr ""
 
@@ -3662,7 +3642,7 @@ msgstr ""
 msgid "Purchase order must match supplier"
 msgstr ""
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr ""
 
@@ -3674,11 +3654,11 @@ msgstr ""
 msgid "Select destination location for received items"
 msgstr ""
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr ""
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr ""
 
@@ -3714,35 +3694,35 @@ msgstr ""
 msgid "Sale price currency"
 msgstr ""
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr ""
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr ""
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr ""
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr ""
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr ""
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr ""
 
@@ -3832,7 +3812,12 @@ msgstr ""
 msgid "Total cost"
 msgstr ""
 
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
 msgid "Edit Purchase Order"
 msgstr ""
 
@@ -3863,9 +3848,9 @@ msgstr ""
 #: part/templates/part/import_wizard/ajax_match_references.html:42
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3929,7 +3914,7 @@ msgstr ""
 msgid "Order Notes"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
 msgid "Add Order Line"
 msgstr ""
 
@@ -3947,12 +3932,12 @@ msgid "Print packing list"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
 msgid "Complete Sales Order"
 msgstr ""
 
@@ -3961,7 +3946,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2471
 msgid "Customer Reference"
 msgstr ""
 
@@ -3971,7 +3956,7 @@ msgstr ""
 msgid "Completed Shipments"
 msgstr ""
 
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
 msgid "Edit Sales Order"
 msgstr ""
 
@@ -3985,7 +3970,7 @@ msgid "Pending Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
 msgid "Actions"
 msgstr ""
 
@@ -4113,7 +4098,7 @@ msgid "Part Category"
 msgstr ""
 
 #: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
 #: users/models.py:38
 msgid "Part Categories"
 msgstr ""
@@ -4124,7 +4109,7 @@ msgstr ""
 #: part/templates/part/category_sidebar.html:9
 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
 #: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
 #: templates/navbar.html:24 users/models.py:39
 msgid "Parts"
 msgstr ""
@@ -4202,7 +4187,7 @@ msgstr ""
 
 #: part/models.py:842 part/templates/part/part_base.html:266
 #: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
 msgid "IPN"
 msgstr ""
 
@@ -4316,7 +4301,7 @@ msgid "Test with this name already exists for this part"
 msgstr ""
 
 #: part/models.py:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
 msgid "Test Name"
 msgstr ""
 
@@ -4448,7 +4433,7 @@ msgid "BOM quantity for this BOM item"
 msgstr ""
 
 #: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
 #: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
@@ -4482,7 +4467,7 @@ msgid "BOM line checksum"
 msgstr ""
 
 #: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
 #: templates/js/translated/table_filters.js:68
 #: templates/js/translated/table_filters.js:88
 msgid "Inherited"
@@ -4493,7 +4478,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
 #: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
 msgid "Allow Variants"
 msgstr ""
 
@@ -4714,6 +4699,11 @@ msgstr ""
 msgid "New Part"
 msgstr ""
 
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr ""
+
 #: part/templates/part/category.html:172
 msgid "Set category"
 msgstr ""
@@ -4902,46 +4892,46 @@ msgstr ""
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
 msgid "Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
 msgid "Add Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
@@ -5084,8 +5074,8 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
 #: templates/js/translated/model_renderers.js:192
 #: templates/js/translated/part.js:581 templates/js/translated/part.js:658
 msgid "Inactive"
@@ -5101,20 +5091,22 @@ msgstr ""
 msgid "This part is a variant of %(link)s"
 msgstr ""
 
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr ""
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr ""
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
 msgid "Can Build"
 msgstr ""
 
@@ -5133,7 +5125,7 @@ msgid "Latest Serial Number"
 msgstr ""
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr ""
 
@@ -5172,7 +5164,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -5291,7 +5283,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
 msgid "Supplier Cost"
 msgstr ""
 
@@ -5530,7 +5522,7 @@ msgstr ""
 msgid "Barcode associated with Stock Item"
 msgstr ""
 
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
 msgid "Label printing failed"
 msgstr ""
 
@@ -5770,12 +5762,12 @@ msgid "Stock Item Test Report"
 msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr ""
 
@@ -5796,7 +5788,7 @@ msgstr ""
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
 msgid "Date"
 msgstr ""
 
@@ -5815,7 +5807,7 @@ msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2589
 msgid "Serial"
 msgstr ""
 
@@ -5832,7 +5824,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr ""
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr ""
 
@@ -5894,7 +5886,7 @@ msgstr ""
 msgid "Packaging this stock item is stored in"
 msgstr ""
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr ""
 
@@ -5934,8 +5926,8 @@ msgstr ""
 msgid "Destination Sales Order"
 msgstr ""
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1816
 msgid "Expiry Date"
 msgstr ""
 
@@ -6215,11 +6207,11 @@ msgstr ""
 msgid "Installed Stock Items"
 msgstr ""
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
 msgid "Install Stock Item"
 msgstr ""
 
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
 msgid "Add Test Result"
 msgstr ""
 
@@ -6311,110 +6303,114 @@ msgstr ""
 msgid "Delete stock item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:244
-msgid "This stock item has not passed all required tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:252
-msgid "This stock item is allocated to Sales Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr ""
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:284
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:292
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1693
+msgid "No location set"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1832
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr ""
 
@@ -6486,8 +6482,8 @@ msgstr ""
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:198 users/models.py:40
 msgid "Stock Locations"
 msgstr ""
 
@@ -6539,7 +6535,7 @@ msgstr ""
 msgid "Child Items"
 msgstr ""
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr ""
 
@@ -6564,55 +6560,55 @@ msgstr ""
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr ""
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr ""
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr ""
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr ""
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr ""
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr ""
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr ""
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr ""
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr ""
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr ""
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr ""
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr ""
 
@@ -7331,9 +7327,9 @@ msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr ""
@@ -7602,14 +7598,14 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
 #: templates/js/translated/part.js:530
 #: templates/js/translated/table_filters.js:178
 msgid "Available"
@@ -7644,67 +7640,67 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
-#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
 msgid "No Response"
 msgstr ""
 
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
 msgid "No response from the InvenTree server"
 msgstr ""
 
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
 msgid "Error 400: Bad request"
 msgstr ""
 
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
 msgid "API request returned error code 400"
 msgstr ""
 
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
 msgid "Error 401: Not Authenticated"
 msgstr ""
 
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
 msgid "Authentication credentials not supplied"
 msgstr ""
 
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
 msgid "Error 403: Permission Denied"
 msgstr ""
 
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
 msgid "You do not have the required permissions to access this function"
 msgstr ""
 
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
 msgid "Error 404: Resource Not Found"
 msgstr ""
 
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
 msgid "The requested resource could not be located on the server"
 msgstr ""
 
-#: templates/js/translated/api.js:217
+#: templates/js/translated/api.js:262
 msgid "Error 405: Method Not Allowed"
 msgstr ""
 
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
 msgid "HTTP method not allowed at URL"
 msgstr ""
 
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
 msgid "Error 408: Timeout"
 msgstr ""
 
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
 msgid "Connection timeout while requesting data from server"
 msgstr ""
 
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
 msgid "Unhandled Error Code"
 msgstr ""
 
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
 msgid "Error code"
 msgstr ""
 
@@ -7765,7 +7761,7 @@ msgid "Unknown response from server"
 msgstr ""
 
 #: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "Invalid server response"
 msgstr ""
 
@@ -7847,12 +7843,12 @@ msgid "Download BOM Template"
 msgstr ""
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
 msgid "Format"
 msgstr ""
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr ""
 
@@ -7932,84 +7928,84 @@ msgstr ""
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
 msgid "Load BOM for subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
 msgid "No Stock Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
 msgid "Includes variant and substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
 #: templates/js/translated/part.js:690
 msgid "Includes variant stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
 msgid "Includes substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -8131,262 +8127,270 @@ msgstr ""
 msgid "Location not specified"
 msgstr ""
 
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
 msgid "No active build outputs found"
 msgstr ""
 
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
 msgid "Allocated Stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
 msgid "No tracked BOM items for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
 msgid "Completed Tests"
 msgstr ""
 
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
 msgid "No required tests for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
 msgid "Edit stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
 msgid "Delete stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
 msgid "Edit Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
 msgid "Remove Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
 msgid "Substitute parts available"
 msgstr ""
 
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
 msgid "Quantity Per"
 msgstr ""
 
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
 msgid "Insufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
 msgid "Sufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
 msgid "Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
 msgid "Build stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
 msgid "Order stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
 msgid "Allocate stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr ""
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
 msgid "You must select at least one part to allocate"
 msgstr ""
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
 msgid "All Parts Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
 msgid "All selected parts have been fully allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
 msgid "Select source location (leave blank to take from all locations)"
 msgstr ""
 
-#: templates/js/translated/build.js:2117
+#: templates/js/translated/build.js:2100
 msgid "Allocate Stock Items to Build Order"
 msgstr ""
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
 msgid "No matching stock locations"
 msgstr ""
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
 msgid "No matching stock items"
 msgstr ""
 
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
 msgid "Automatic Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
 msgstr ""
 
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
 msgid "If a location is specifed, stock will only be allocated from that location"
 msgstr ""
 
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
 msgstr ""
 
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
 msgstr ""
 
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
 msgid "Allocate Stock Items"
 msgstr ""
 
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
 msgid "Select"
 msgstr ""
 
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
 msgid "Build order is overdue"
 msgstr ""
 
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
 msgid "Progress"
 msgstr ""
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
 msgid "No information"
 msgstr ""
 
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
 msgid "No parts allocated for"
 msgstr ""
 
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
 msgid "Add Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
 msgid "Edit Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:342
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr ""
+
+#: templates/js/translated/company.js:595
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
 #: templates/js/translated/part.js:650
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
 #: templates/js/translated/part.js:654
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
 msgid "No supplier parts found"
 msgstr ""
 
@@ -8424,61 +8428,61 @@ msgstr ""
 msgid "Create filter"
 msgstr ""
 
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
 msgid "Action Prohibited"
 msgstr ""
 
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
 msgid "Create operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
 msgid "Update operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
 msgid "Delete operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
 msgid "View operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
 msgid "Keep this form open"
 msgstr ""
 
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
 msgid "Enter a valid number"
 msgstr ""
 
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
 #: templates/modals.html:43
 msgid "Form errors exist"
 msgstr ""
 
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
 msgid "No results found"
 msgstr ""
 
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
 msgid "Searching"
 msgstr ""
 
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
 msgid "Clear input"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "File Column"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "Field Name"
 msgstr ""
 
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
 msgid "Select Columns"
 msgstr ""
 
@@ -8552,62 +8556,62 @@ msgstr ""
 msgid "Select Label Template"
 msgstr ""
 
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
 msgid "Cancel"
 msgstr ""
 
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
 #: templates/modals.html:28 templates/modals.html:51
 msgid "Submit"
 msgstr ""
 
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
 msgid "Form Title"
 msgstr ""
 
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
 msgid "Waiting for server..."
 msgstr ""
 
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
 msgid "Show Error Information"
 msgstr ""
 
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
 msgid "Accept"
 msgstr ""
 
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
 msgid "Loading Data"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Invalid response from server"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Form data missing from server response"
 msgstr ""
 
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
 msgid "Error posting form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "JSON response missing form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
 msgid "Error 400: Bad Request"
 msgstr ""
 
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
 msgid "Server returned error code 400"
 msgstr ""
 
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
 msgid "Error requesting form data"
 msgstr ""
 
@@ -8665,377 +8669,381 @@ msgstr ""
 msgid "Notifications will load here"
 msgstr ""
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
 msgstr ""
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
 msgstr ""
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr ""
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr ""
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr ""
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr ""
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr ""
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr ""
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr ""
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr ""
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr ""
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr ""
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr ""
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
 msgid "Stock Status"
 msgstr ""
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr ""
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr ""
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr ""
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
 msgid "Order is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
 msgid "Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
 msgid "Duplicate Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
 msgid "Edit Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
 msgid "Delete Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1856
 msgid "No line items found"
 msgstr ""
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
 msgid "Total"
 msgstr ""
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
 msgid "Total Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
 msgid "Duplicate line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
 msgid "Edit line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
 msgid "Delete line item"
 msgstr ""
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
 msgid "Duplicate line"
 msgstr ""
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
 msgid "Edit line"
 msgstr ""
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
 msgid "Delete line"
 msgstr ""
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
 msgid "Duplicate Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
 msgid "Edit Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
 msgid "Delete Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2279
 msgid "No matching line"
 msgstr ""
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2392
 msgid "No sales orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2462
 msgid "Invalid Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2549
 msgid "Edit shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2552
 msgid "Complete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2557
 msgid "Delete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2577
 msgid "Edit Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2594
 msgid "Delete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2628
 msgid "No matching shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2638
 msgid "Shipment Reference"
 msgstr ""
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2662
 msgid "Not shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2668
 msgid "Tracking"
 msgstr ""
 
-#: templates/js/translated/order.js:2603
+#: templates/js/translated/order.js:2672
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:2841
 msgid "Add Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2892
 msgid "Confirm stock allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2893
 msgid "Allocate Stock Items to Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:3101
 msgid "No sales order allocations found"
 msgstr ""
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:3182
 msgid "Edit Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:3199
 msgid "Confirm Delete Operation"
 msgstr ""
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:3200
 msgid "Delete Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
 msgid "Shipped to customer"
 msgstr ""
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
 msgid "Stock location not specified"
 msgstr ""
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3623
 msgid "Allocate serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3629
 msgid "Purchase stock"
 msgstr ""
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
 msgid "Calculate price"
 msgstr ""
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3648
 msgid "Cannot be deleted as items have been shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3651
 msgid "Cannot be deleted as items have been allocated"
 msgstr ""
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3733
 msgid "Allocate Serial Numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3842
 msgid "Update Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3856
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:4092
 msgid "No matching lines"
 msgstr ""
 
@@ -9217,7 +9225,7 @@ msgid "No category"
 msgstr ""
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2238
 msgid "Display as list"
 msgstr ""
 
@@ -9225,7 +9233,7 @@ msgstr ""
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
 msgid "Display as tree"
 msgstr ""
 
@@ -9233,7 +9241,7 @@ msgstr ""
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
 msgid "Path"
 msgstr ""
 
@@ -9241,12 +9249,12 @@ msgstr ""
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
 msgid "Delete test result"
 msgstr ""
 
@@ -9367,11 +9375,11 @@ msgstr ""
 msgid "Sales Order(s) must be selected before printing report"
 msgstr ""
 
-#: templates/js/translated/search.js:307
+#: templates/js/translated/search.js:352
 msgid "Minimize results"
 msgstr ""
 
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:355
 msgid "Remove results"
 msgstr ""
 
@@ -9531,204 +9539,204 @@ msgstr ""
 msgid "Confirm stock adjustment"
 msgstr ""
 
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
 msgid "PASS"
 msgstr ""
 
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
 msgid "FAIL"
 msgstr ""
 
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
 msgid "NO RESULT"
 msgstr ""
 
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
 msgid "Pass test"
 msgstr ""
 
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
 msgid "Add test result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
 msgid "No test results found"
 msgstr ""
 
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
 msgid "Test Date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
 msgid "Edit Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
 msgid "Delete Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
 msgid "In production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
 msgid "Installed in Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
 msgid "Assigned to Sales Order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
 msgid "No stock location set"
 msgstr ""
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1712
 msgid "Stock item is in production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1717
 msgid "Stock item assigned to sales order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1720
 msgid "Stock item assigned to customer"
 msgstr ""
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr ""
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr ""
-
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
 msgid "Serialized stock item has been allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
 msgid "Stock item has been fully allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
 msgid "Stock item has been partially allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1730
 msgid "Stock item has been installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1734
+msgid "Stock item has expired"
+msgstr ""
+
+#: templates/js/translated/stock.js:1736
+msgid "Stock item will expire soon"
+msgstr ""
+
+#: templates/js/translated/stock.js:1743
 msgid "Stock item has been rejected"
 msgstr ""
 
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1745
 msgid "Stock item is lost"
 msgstr ""
 
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1747
 msgid "Stock item is destroyed"
 msgstr ""
 
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1751
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr ""
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1802
 msgid "Stocktake"
 msgstr ""
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1884
 msgid "Supplier part not specified"
 msgstr ""
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1922
 msgid "No stock items matching query"
 msgstr ""
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2095
 msgid "Set Stock Status"
 msgstr ""
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2109
 msgid "Select Status Code"
 msgstr ""
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2110
 msgid "Status code must be selected"
 msgstr ""
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2365
 msgid "Details"
 msgstr ""
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2381
 msgid "Part information unavailable"
 msgstr ""
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2403
 msgid "Location no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2422
 msgid "Purchase order no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
 msgid "Customer no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2459
 msgid "Stock item no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2482
 msgid "Added"
 msgstr ""
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2490
 msgid "Removed"
 msgstr ""
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2566
 msgid "No installed items"
 msgstr ""
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
 msgid "Uninstall Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2666
 msgid "Select stock item to uninstall"
 msgstr ""
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2687
 msgid "Install another stock item into this item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2688
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr ""
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2690
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2691
 msgid "The Stock Item is currently available in stock"
 msgstr ""
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2692
 msgid "The Stock Item is not already installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2693
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr ""
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2706
 msgid "Select part to install"
 msgstr ""
 
@@ -9960,69 +9968,81 @@ msgstr ""
 msgid "Purchasable"
 msgstr ""
 
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr ""
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr ""
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
 msgid "Export Table Data"
 msgstr ""
 
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
 msgid "Select File Format"
 msgstr ""
 
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
 msgid "Loading data"
 msgstr ""
 
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
 msgid "rows per page"
 msgstr ""
 
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
 msgid "Showing all rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "Showing"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "to"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "of"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
 #: templates/search.html:8 templates/search_form.html:6
 #: templates/search_form.html:7
 msgid "Search"
 msgstr ""
 
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
 msgid "No matching results"
 msgstr ""
 
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
 msgid "Hide/Show pagination"
 msgstr ""
 
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
 msgid "Refresh"
 msgstr ""
 
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
 msgid "Toggle"
 msgstr ""
 
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
 msgid "Columns"
 msgstr ""
 
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
 msgid "All"
 msgstr ""
 
diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po
index f8bdf718c7..03f58867ec 100644
--- a/InvenTree/locale/th/LC_MESSAGES/django.po
+++ b/InvenTree/locale/th/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
-"PO-Revision-Date: 2022-05-24 01:43\n"
+"POT-Creation-Date: 2022-05-28 23:41+0000\n"
+"PO-Revision-Date: 2022-05-29 01:47\n"
 "Last-Translator: \n"
 "Language-Team: Thai\n"
 "Language: th_TH\n"
@@ -21,7 +21,7 @@ msgstr ""
 msgid "API endpoint not found"
 msgstr ""
 
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
 msgid "Error details can be found in the admin panel"
 msgstr ""
 
@@ -30,7 +30,7 @@ msgid "Enter date"
 msgstr ""
 
 #: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
 msgid "Confirm"
 msgstr ""
 
@@ -79,7 +79,7 @@ msgstr ""
 msgid "Duplicate serial: {sn}"
 msgstr ""
 
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
 msgid "Invalid quantity provided"
 msgstr ""
 
@@ -134,10 +134,12 @@ msgid "Select file to attach"
 msgstr ""
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:139 order/models.py:1273
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr ""
 
@@ -159,7 +161,7 @@ msgstr ""
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2513
 msgid "User"
 msgstr ""
 
@@ -205,9 +207,10 @@ msgstr ""
 #: templates/InvenTree/settings/plugin.html:132
 #: templates/InvenTree/settings/plugin_settings.html:23
 #: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2283
 msgid "Name"
 msgstr ""
 
@@ -216,22 +219,22 @@ msgstr ""
 #: company/models.py:575 company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
 #: part/templates/part/part_base.html:167
 #: part/templates/part/set_category.html:14 report/models.py:182
 #: report/models.py:547 report/models.py:586
 #: report/templates/report/inventree_build_order_base.html:118
 #: stock/templates/stock/location.html:103
 #: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
 msgid "Description"
 msgstr ""
 
@@ -406,7 +409,7 @@ msgid "InvenTree system health checks failed"
 msgstr ""
 
 #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
 msgid "Pending"
 msgstr ""
 
@@ -414,141 +417,145 @@ msgstr ""
 msgid "Placed"
 msgstr ""
 
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
 #: order/templates/order/order_base.html:134
 #: order/templates/order/sales_order_base.html:133
 msgid "Complete"
 msgstr ""
 
 #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
 msgid "Cancelled"
 msgstr ""
 
 #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
 msgid "Lost"
 msgstr ""
 
 #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
 msgid "Returned"
 msgstr ""
 
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
 msgid "Shipped"
 msgstr ""
 
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
 msgid "OK"
 msgstr ""
 
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
 msgid "Attention needed"
 msgstr ""
 
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
 msgid "Damaged"
 msgstr ""
 
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
 msgid "Destroyed"
 msgstr ""
 
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
 msgid "Rejected"
 msgstr ""
 
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
 msgid "Legacy stock tracking entry"
 msgstr ""
 
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
 msgid "Stock item created"
 msgstr ""
 
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
 msgid "Edited stock item"
 msgstr ""
 
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
 msgid "Assigned serial number"
 msgstr ""
 
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
 msgid "Stock counted"
 msgstr ""
 
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
 msgid "Stock manually added"
 msgstr ""
 
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
 msgid "Stock manually removed"
 msgstr ""
 
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
 msgid "Location changed"
 msgstr ""
 
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
 msgid "Installed into assembly"
 msgstr ""
 
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
 msgid "Removed from assembly"
 msgstr ""
 
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
 msgid "Installed component item"
 msgstr ""
 
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
 msgid "Removed component item"
 msgstr ""
 
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
 msgid "Split from parent item"
 msgstr ""
 
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
 msgid "Merged stock items"
 msgstr ""
 
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
 msgid "Converted to variant"
 msgstr ""
 
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
 msgid "Sent to customer"
 msgstr ""
 
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
 msgid "Returned from customer"
 msgstr ""
 
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
 msgid "Build order output created"
 msgstr ""
 
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
 msgid "Build order output completed"
 msgstr ""
 
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
 msgid "Consumed by build order"
 msgstr ""
 
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
 msgid "Received against purchase order"
 msgstr ""
 
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
 msgid "Production"
 msgstr ""
 
@@ -637,15 +644,15 @@ msgstr ""
 msgid "Build Order Reference"
 msgstr ""
 
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
 #: part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
 msgid "Reference"
 msgstr ""
 
@@ -664,7 +671,7 @@ msgstr ""
 
 #: build/models.py:225 build/templates/build/build_base.html:77
 #: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
 #: part/models.py:2303 part/models.py:2319 part/models.py:2338
 #: part/models.py:2355 part/models.py:2457 part/models.py:2579
 #: part/models.py:2669 part/models.py:2760 part/models.py:3050
@@ -679,19 +686,21 @@ msgstr ""
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
 #: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
 msgid "Part"
 msgstr ""
 
@@ -708,7 +717,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr ""
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
 msgid "Source Location"
 msgstr ""
 
@@ -749,7 +758,7 @@ msgid "Build status code"
 msgstr ""
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr ""
 
@@ -757,12 +766,12 @@ msgstr ""
 msgid "Batch code for this build output"
 msgstr ""
 
-#: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
 msgid "Creation Date"
 msgstr ""
 
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
 msgid "Target completion date"
 msgstr ""
 
@@ -770,8 +779,8 @@ msgstr ""
 msgid "Target date for build completion. Build will be overdue after this date."
 msgstr ""
 
-#: build/models.py:300 order/models.py:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
 msgid "Completion Date"
 msgstr ""
 
@@ -779,7 +788,7 @@ msgstr ""
 msgid "completed by"
 msgstr ""
 
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
 msgid "Issued by"
 msgstr ""
 
@@ -788,11 +797,11 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
 msgid "Responsible"
 msgstr ""
 
@@ -804,14 +813,14 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr ""
 
 #: build/models.py:334 build/serializers.py:390
 #: build/templates/build/sidebar.html:21 company/models.py:134
 #: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
 #: order/templates/order/po_sidebar.html:11
 #: order/templates/order/so_sidebar.html:17 part/models.py:983
 #: part/templates/part/part_sidebar.html:59
@@ -820,11 +829,11 @@ msgstr ""
 #: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
 msgid "Notes"
 msgstr ""
 
@@ -857,7 +866,7 @@ msgstr ""
 msgid "Stock item is over-allocated"
 msgstr ""
 
-#: build/models.py:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1413
 msgid "Allocation quantity must be greater than zero"
 msgstr ""
 
@@ -869,8 +878,8 @@ msgstr ""
 msgid "Selected stock item not found in BOM"
 msgstr ""
 
-#: build/models.py:1375 stock/templates/stock/item_base.html:335
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
 #: templates/navbar.html:38
 msgid "Build"
 msgstr ""
@@ -879,18 +888,18 @@ msgstr ""
 msgid "Build to allocate parts"
 msgstr ""
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2449
 msgid "Stock Item"
 msgstr ""
 
@@ -902,10 +911,10 @@ msgstr ""
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_build_order_base.html:114
@@ -913,25 +922,24 @@ 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
 msgid "Quantity"
 msgstr ""
 
@@ -948,7 +956,7 @@ msgid "Destination stock item"
 msgstr ""
 
 #: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
 msgid "Build Output"
 msgstr ""
 
@@ -972,7 +980,7 @@ msgstr ""
 msgid "Enter quantity for build output"
 msgstr ""
 
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
 #: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
 #: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
 #: stock/serializers.py:294
@@ -987,8 +995,8 @@ msgstr ""
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr ""
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr ""
@@ -1015,15 +1023,15 @@ msgstr ""
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
 msgid "Location"
 msgstr ""
 
@@ -1032,12 +1040,12 @@ msgid "Location for completed build outputs"
 msgstr ""
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: build/templates/build/detail.html:62 order/models.py:663
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
 msgid "Status"
 msgstr ""
 
@@ -1118,7 +1126,7 @@ msgstr ""
 msgid "Item must be in stock"
 msgstr ""
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr ""
@@ -1135,7 +1143,7 @@ msgstr ""
 msgid "This stock item has already been allocated to this build output"
 msgstr ""
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr ""
 
@@ -1233,13 +1241,13 @@ msgid "Stock has not been fully allocated to this Build Order"
 msgstr ""
 
 #: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr ""
 
@@ -1266,14 +1274,14 @@ msgid "Completed"
 msgstr ""
 
 #: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2436
 msgid "Sales Order"
 msgstr ""
 
@@ -1308,8 +1316,8 @@ msgstr ""
 msgid "Stock can be taken from any available location."
 msgstr ""
 
-#: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
 msgid "Destination"
 msgstr ""
 
@@ -1322,11 +1330,11 @@ msgid "Allocated Parts"
 msgstr ""
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
-#: templates/js/translated/build.js:1184
+#: stock/templates/stock/item_base.html:170
+#: templates/js/translated/build.js:1179
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1335,7 +1343,7 @@ msgstr ""
 #: build/templates/build/detail.html:126
 #: order/templates/order/order_base.html:149
 #: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
 msgid "Created"
 msgstr ""
 
@@ -1355,7 +1363,7 @@ msgstr ""
 msgid "Allocate Stock to Build"
 msgstr ""
 
-#: build/templates/build/detail.html:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
 msgid "Unallocate stock"
 msgstr ""
 
@@ -1385,8 +1393,8 @@ msgstr ""
 
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: company/templates/company/detail.html:85
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr ""
 
@@ -1461,8 +1469,8 @@ msgid "Completed Build Outputs"
 msgstr ""
 
 #: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
 #: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:82
 #: order/templates/order/sales_order_detail.html:129
@@ -1476,11 +1484,11 @@ msgstr ""
 msgid "Build Notes"
 msgstr ""
 
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
 msgid "Allocation Complete"
 msgstr ""
 
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
@@ -1492,18 +1500,6 @@ msgstr ""
 msgid "Print Build Orders"
 msgstr ""
 
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr ""
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr ""
-
 #: build/templates/build/sidebar.html:5
 msgid "Build Order Details"
 msgstr ""
@@ -1727,7 +1723,7 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
 #: templates/js/translated/table_filters.js:168
 #: templates/js/translated/table_filters.js:460
 msgid "Assembly"
@@ -2413,7 +2409,7 @@ msgid "Price break quantity"
 msgstr ""
 
 #: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: company/templates/company/supplier_part.html:263 order/models.py:975
 #: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
 msgid "Price"
 msgstr ""
@@ -2556,7 +2552,7 @@ msgstr ""
 
 #: company/models.py:104 company/templates/company/company_base.html:100
 #: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
 msgid "Website"
 msgstr ""
 
@@ -2651,10 +2647,11 @@ msgstr ""
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: stock/templates/stock/item_base.html:212
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
 #: templates/js/translated/table_filters.js:411
 msgid "Manufacturer"
 msgstr ""
@@ -2665,8 +2662,10 @@ msgstr ""
 
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr ""
@@ -2686,7 +2685,7 @@ msgstr ""
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr ""
 
@@ -2696,8 +2695,9 @@ msgstr ""
 
 #: company/models.py:427
 #: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
 msgid "Value"
 msgstr ""
 
@@ -2708,7 +2708,7 @@ msgstr ""
 #: company/models.py:434 part/models.py:940 part/models.py:2549
 #: part/templates/part/part_base.html:280
 #: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
 msgid "Units"
 msgstr ""
 
@@ -2721,11 +2721,12 @@ msgid "Linked manufacturer part must reference the same base part"
 msgstr ""
 
 #: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: stock/templates/stock/item_base.html:229
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2736,8 +2737,9 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
 msgid "SKU"
 msgstr ""
 
@@ -2773,8 +2775,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr ""
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
 msgid "Packaging"
 msgstr ""
 
@@ -2804,12 +2806,12 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
 msgid "Company"
 msgstr ""
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr ""
 
@@ -2822,7 +2824,7 @@ msgid "Edit company information"
 msgstr ""
 
 #: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
 msgid "Edit Company"
 msgstr ""
 
@@ -2845,12 +2847,12 @@ msgstr ""
 msgid "Download image from URL"
 msgstr ""
 
-#: company/templates/company/company_base.html:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr ""
@@ -2869,7 +2871,7 @@ msgid "Upload Image"
 msgstr ""
 
 #: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
+#: company/templates/company/manufacturer_part_sidebar.html:7
 #: templates/InvenTree/search.html:118
 msgid "Supplier Parts"
 msgstr ""
@@ -2884,28 +2886,19 @@ msgstr ""
 msgid "New Supplier Part"
 msgstr ""
 
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr ""
-
 #: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
 #: part/templates/part/category.html:176
 msgid "Order parts"
 msgstr ""
 
 #: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
 msgid "Delete parts"
 msgstr ""
 
 #: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
 msgid "Delete Parts"
 msgstr ""
 
@@ -2917,88 +2910,76 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
 msgid "New Manufacturer Part"
 msgstr ""
 
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
 msgid "Supplier Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
 #: company/templates/company/sidebar.html:12
 #: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
 #: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:235 templates/navbar.html:50
 #: users/models.py:43
 msgid "Purchase Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
 #: order/templates/order/purchase_orders.html:17
 msgid "Create new purchase order"
 msgstr ""
 
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr ""
 
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
 #: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
 #: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
 #: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:259 templates/navbar.html:61
 #: users/models.py:44
 msgid "Sales Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
 #: order/templates/order/sales_orders.html:20
 msgid "Create new sales order"
 msgstr ""
 
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
 #: order/templates/order/sales_orders.html:21
 msgid "New Sales Order"
 msgstr ""
 
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
 msgid "Assigned Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
 msgid "Company Notes"
 msgstr ""
 
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr ""
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr ""
-
 #: company/templates/company/index.html:8
 msgid "Supplier List"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
 #: templates/navbar.html:49
 msgid "Manufacturers"
 msgstr ""
@@ -3011,12 +2992,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -3032,55 +3013,46 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:119
 #: company/templates/company/supplier_part.html:15 company/views.py:41
 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
 msgid "Suppliers"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
 #: part/templates/part/detail.html:363
 msgid "Delete supplier parts"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
 msgid "Delete"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:164
+#: company/templates/company/manufacturer_part.html:166
 #: company/templates/company/manufacturer_part_sidebar.html:5
 #: part/templates/part/category_sidebar.html:19
 #: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8
 msgid "Parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
 #: part/templates/part/detail.html:184
 #: templates/InvenTree/settings/category.html:12
 #: templates/InvenTree/settings/part.html:66
 msgid "New Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
 msgid "Delete parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
 msgid "Add Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr ""
-
 #: company/templates/company/sidebar.html:6
 msgid "Manufactured Parts"
 msgstr ""
@@ -3099,19 +3071,19 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
 msgid "Delete supplier part"
 msgstr ""
 
@@ -3186,11 +3158,11 @@ msgstr ""
 #: part/templates/part/part_sidebar.html:14
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
 #: templates/InvenTree/settings/sidebar.html:43
 #: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
 #: templates/navbar.html:31
 msgid "Stock"
 msgstr ""
@@ -3216,8 +3188,8 @@ msgstr ""
 #: stock/templates/stock/location.html:161
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
+#: templates/js/translated/stock.js:2307 users/models.py:41
 msgid "Stock Items"
 msgstr ""
 
@@ -3229,7 +3201,7 @@ msgstr ""
 msgid "New Manufacturer"
 msgstr ""
 
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
 #: templates/navbar.html:60
 msgid "Customers"
 msgstr ""
@@ -3238,7 +3210,7 @@ msgstr ""
 msgid "New Customer"
 msgstr ""
 
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:212
 msgid "Companies"
 msgstr ""
 
@@ -3328,305 +3300,313 @@ msgstr ""
 msgid "Part query filters (comma-separated value of key=value pairs)"
 msgstr ""
 
-#: order/models.py:130
+#: order/models.py:137
 msgid "Order description"
 msgstr ""
 
-#: order/models.py:132
+#: order/models.py:139 order/models.py:1274
 msgid "Link to external page"
 msgstr ""
 
-#: order/models.py:140
+#: order/models.py:147
 msgid "Created By"
 msgstr ""
 
-#: order/models.py:147
+#: order/models.py:154
 msgid "User or group responsible for this order"
 msgstr ""
 
-#: order/models.py:152
+#: order/models.py:159
 msgid "Order notes"
 msgstr ""
 
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
 msgid "Order reference"
 msgstr ""
 
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
 msgid "Purchase order status"
 msgstr ""
 
-#: order/models.py:253
+#: order/models.py:311
 msgid "Company from which the items are being ordered"
 msgstr ""
 
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
 msgid "Supplier Reference"
 msgstr ""
 
-#: order/models.py:256
+#: order/models.py:314
 msgid "Supplier order reference code"
 msgstr ""
 
-#: order/models.py:263
+#: order/models.py:321
 msgid "received by"
 msgstr ""
 
-#: order/models.py:268
+#: order/models.py:326
 msgid "Issue Date"
 msgstr ""
 
-#: order/models.py:269
+#: order/models.py:327
 msgid "Date order was issued"
 msgstr ""
 
-#: order/models.py:274
+#: order/models.py:332
 msgid "Target Delivery Date"
 msgstr ""
 
-#: order/models.py:275
+#: order/models.py:333
 msgid "Expected date for order delivery. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:281
+#: order/models.py:339
 msgid "Date order was completed"
 msgstr ""
 
-#: order/models.py:310
+#: order/models.py:368
 msgid "Part supplier must match PO supplier"
 msgstr ""
 
-#: order/models.py:456
+#: order/models.py:514
 msgid "Quantity must be a positive number"
 msgstr ""
 
-#: order/models.py:601
+#: order/models.py:659
 msgid "Company to which the items are being sold"
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer Reference "
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer order reference code"
 msgstr ""
 
-#: order/models.py:612
+#: order/models.py:670
 msgid "Target date for order completion. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
 msgid "Shipment Date"
 msgstr ""
 
-#: order/models.py:622
+#: order/models.py:680
 msgid "shipped by"
 msgstr ""
 
-#: order/models.py:688
+#: order/models.py:746
 msgid "Order cannot be completed as no parts have been assigned"
 msgstr ""
 
-#: order/models.py:692
+#: order/models.py:750
 msgid "Only a pending order can be marked as complete"
 msgstr ""
 
-#: order/models.py:695
+#: order/models.py:753
 msgid "Order cannot be completed as there are incomplete shipments"
 msgstr ""
 
-#: order/models.py:698
+#: order/models.py:756
 msgid "Order cannot be completed as there are incomplete line items"
 msgstr ""
 
-#: order/models.py:878
+#: order/models.py:936
 msgid "Item quantity"
 msgstr ""
 
-#: order/models.py:884
+#: order/models.py:942
 msgid "Line item reference"
 msgstr ""
 
-#: order/models.py:886
+#: order/models.py:944
 msgid "Line item notes"
 msgstr ""
 
-#: order/models.py:891
+#: order/models.py:949
 msgid "Target shipping date for this line item"
 msgstr ""
 
-#: order/models.py:909
+#: order/models.py:967
 msgid "Context"
 msgstr ""
 
-#: order/models.py:910
+#: order/models.py:968
 msgid "Additional context for this line"
 msgstr ""
 
-#: order/models.py:918
+#: order/models.py:976
 msgid "Unit price"
 msgstr ""
 
-#: order/models.py:951
+#: order/models.py:1009
 msgid "Supplier part must match supplier"
 msgstr ""
 
-#: order/models.py:958
+#: order/models.py:1016
 msgid "deleted"
 msgstr ""
 
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
 msgid "Order"
 msgstr ""
 
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
 msgid "Purchase Order"
 msgstr ""
 
-#: order/models.py:984
+#: order/models.py:1042
 msgid "Supplier part"
 msgstr ""
 
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
 msgstr ""
 
-#: order/models.py:992
+#: order/models.py:1050
 msgid "Number of items received"
 msgstr ""
 
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1900
 msgid "Purchase Price"
 msgstr ""
 
-#: order/models.py:1000
+#: order/models.py:1058
 msgid "Unit purchase price"
 msgstr ""
 
-#: order/models.py:1008
+#: order/models.py:1066
 msgid "Where does the Purchaser want this item to be stored?"
 msgstr ""
 
-#: order/models.py:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
 #: part/templates/part/prices.html:119 part/templates/part/prices.html:288
 msgid "Sale Price"
 msgstr ""
 
-#: order/models.py:1079
+#: order/models.py:1137
 msgid "Unit sale price"
 msgstr ""
 
-#: order/models.py:1084
+#: order/models.py:1142
 msgid "Shipped quantity"
 msgstr ""
 
-#: order/models.py:1171
+#: order/models.py:1229
 msgid "Date of shipment"
 msgstr ""
 
-#: order/models.py:1178
+#: order/models.py:1236
 msgid "Checked By"
 msgstr ""
 
-#: order/models.py:1179
+#: order/models.py:1237
 msgid "User who checked this shipment"
 msgstr ""
 
-#: order/models.py:1187
+#: order/models.py:1245
 msgid "Shipment number"
 msgstr ""
 
-#: order/models.py:1194
+#: order/models.py:1252
 msgid "Shipment notes"
 msgstr ""
 
-#: order/models.py:1201
+#: order/models.py:1259
 msgid "Tracking Number"
 msgstr ""
 
-#: order/models.py:1202
+#: order/models.py:1260
 msgid "Shipment tracking information"
 msgstr ""
 
-#: order/models.py:1213
+#: order/models.py:1267
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1268
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1285
 msgid "Shipment has already been sent"
 msgstr ""
 
-#: order/models.py:1216
+#: order/models.py:1288
 msgid "Shipment has no allocated stock items"
 msgstr ""
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1395 order/models.py:1397
 msgid "Stock item has not been assigned"
 msgstr ""
 
-#: order/models.py:1317
+#: order/models.py:1401
 msgid "Cannot allocate stock item to a line with a different part"
 msgstr ""
 
-#: order/models.py:1319
+#: order/models.py:1403
 msgid "Cannot allocate stock to a line without a part"
 msgstr ""
 
-#: order/models.py:1322
+#: order/models.py:1406
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr ""
 
-#: order/models.py:1326
+#: order/models.py:1410
 msgid "StockItem is over-allocated"
 msgstr ""
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1416 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr ""
 
-#: order/models.py:1335
+#: order/models.py:1419
 msgid "Sales order does not match shipment"
 msgstr ""
 
-#: order/models.py:1336
+#: order/models.py:1420
 msgid "Shipment does not match sales order"
 msgstr ""
 
-#: order/models.py:1344
+#: order/models.py:1428
 msgid "Line"
 msgstr ""
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr ""
 
-#: order/models.py:1353
+#: order/models.py:1437
 msgid "Sales order shipment reference"
 msgstr ""
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr ""
 
-#: order/models.py:1366
+#: order/models.py:1450
 msgid "Select stock item to allocate"
 msgstr ""
 
-#: order/models.py:1369
+#: order/models.py:1453
 msgid "Enter stock allocation quantity"
 msgstr ""
 
@@ -3662,7 +3642,7 @@ msgstr ""
 msgid "Purchase order must match supplier"
 msgstr ""
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr ""
 
@@ -3674,11 +3654,11 @@ msgstr ""
 msgid "Select destination location for received items"
 msgstr ""
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr ""
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr ""
 
@@ -3714,35 +3694,35 @@ msgstr ""
 msgid "Sale price currency"
 msgstr ""
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr ""
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr ""
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr ""
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr ""
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr ""
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr ""
 
@@ -3832,7 +3812,12 @@ msgstr ""
 msgid "Total cost"
 msgstr ""
 
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
 msgid "Edit Purchase Order"
 msgstr ""
 
@@ -3863,9 +3848,9 @@ msgstr ""
 #: part/templates/part/import_wizard/ajax_match_references.html:42
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3929,7 +3914,7 @@ msgstr ""
 msgid "Order Notes"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
 msgid "Add Order Line"
 msgstr ""
 
@@ -3947,12 +3932,12 @@ msgid "Print packing list"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
 msgid "Complete Sales Order"
 msgstr ""
 
@@ -3961,7 +3946,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2471
 msgid "Customer Reference"
 msgstr ""
 
@@ -3971,7 +3956,7 @@ msgstr ""
 msgid "Completed Shipments"
 msgstr ""
 
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
 msgid "Edit Sales Order"
 msgstr ""
 
@@ -3985,7 +3970,7 @@ msgid "Pending Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
 msgid "Actions"
 msgstr ""
 
@@ -4113,7 +4098,7 @@ msgid "Part Category"
 msgstr ""
 
 #: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
 #: users/models.py:38
 msgid "Part Categories"
 msgstr ""
@@ -4124,7 +4109,7 @@ msgstr ""
 #: part/templates/part/category_sidebar.html:9
 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
 #: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
 #: templates/navbar.html:24 users/models.py:39
 msgid "Parts"
 msgstr ""
@@ -4202,7 +4187,7 @@ msgstr ""
 
 #: part/models.py:842 part/templates/part/part_base.html:266
 #: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
 msgid "IPN"
 msgstr ""
 
@@ -4316,7 +4301,7 @@ msgid "Test with this name already exists for this part"
 msgstr ""
 
 #: part/models.py:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
 msgid "Test Name"
 msgstr ""
 
@@ -4448,7 +4433,7 @@ msgid "BOM quantity for this BOM item"
 msgstr ""
 
 #: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
 #: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
@@ -4482,7 +4467,7 @@ msgid "BOM line checksum"
 msgstr ""
 
 #: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
 #: templates/js/translated/table_filters.js:68
 #: templates/js/translated/table_filters.js:88
 msgid "Inherited"
@@ -4493,7 +4478,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
 #: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
 msgid "Allow Variants"
 msgstr ""
 
@@ -4714,6 +4699,11 @@ msgstr ""
 msgid "New Part"
 msgstr ""
 
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr ""
+
 #: part/templates/part/category.html:172
 msgid "Set category"
 msgstr ""
@@ -4902,46 +4892,46 @@ msgstr ""
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
 msgid "Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
 msgid "Add Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
@@ -5084,8 +5074,8 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
 #: templates/js/translated/model_renderers.js:192
 #: templates/js/translated/part.js:581 templates/js/translated/part.js:658
 msgid "Inactive"
@@ -5101,20 +5091,22 @@ msgstr ""
 msgid "This part is a variant of %(link)s"
 msgstr ""
 
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr ""
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr ""
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
 msgid "Can Build"
 msgstr ""
 
@@ -5133,7 +5125,7 @@ msgid "Latest Serial Number"
 msgstr ""
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr ""
 
@@ -5172,7 +5164,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -5291,7 +5283,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
 msgid "Supplier Cost"
 msgstr ""
 
@@ -5530,7 +5522,7 @@ msgstr ""
 msgid "Barcode associated with Stock Item"
 msgstr ""
 
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
 msgid "Label printing failed"
 msgstr ""
 
@@ -5770,12 +5762,12 @@ msgid "Stock Item Test Report"
 msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr ""
 
@@ -5796,7 +5788,7 @@ msgstr ""
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
 msgid "Date"
 msgstr ""
 
@@ -5815,7 +5807,7 @@ msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2589
 msgid "Serial"
 msgstr ""
 
@@ -5832,7 +5824,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr ""
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr ""
 
@@ -5894,7 +5886,7 @@ msgstr ""
 msgid "Packaging this stock item is stored in"
 msgstr ""
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr ""
 
@@ -5934,8 +5926,8 @@ msgstr ""
 msgid "Destination Sales Order"
 msgstr ""
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1816
 msgid "Expiry Date"
 msgstr ""
 
@@ -6215,11 +6207,11 @@ msgstr ""
 msgid "Installed Stock Items"
 msgstr ""
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
 msgid "Install Stock Item"
 msgstr ""
 
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
 msgid "Add Test Result"
 msgstr ""
 
@@ -6311,110 +6303,114 @@ msgstr ""
 msgid "Delete stock item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:244
-msgid "This stock item has not passed all required tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:252
-msgid "This stock item is allocated to Sales Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr ""
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:284
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:292
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1693
+msgid "No location set"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1832
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr ""
 
@@ -6486,8 +6482,8 @@ msgstr ""
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:198 users/models.py:40
 msgid "Stock Locations"
 msgstr ""
 
@@ -6539,7 +6535,7 @@ msgstr ""
 msgid "Child Items"
 msgstr ""
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr ""
 
@@ -6564,55 +6560,55 @@ msgstr ""
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr ""
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr ""
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr ""
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr ""
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr ""
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr ""
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr ""
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr ""
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr ""
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr ""
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr ""
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr ""
 
@@ -7331,9 +7327,9 @@ msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr ""
@@ -7602,14 +7598,14 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
 #: templates/js/translated/part.js:530
 #: templates/js/translated/table_filters.js:178
 msgid "Available"
@@ -7644,67 +7640,67 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
-#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
 msgid "No Response"
 msgstr ""
 
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
 msgid "No response from the InvenTree server"
 msgstr ""
 
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
 msgid "Error 400: Bad request"
 msgstr ""
 
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
 msgid "API request returned error code 400"
 msgstr ""
 
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
 msgid "Error 401: Not Authenticated"
 msgstr ""
 
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
 msgid "Authentication credentials not supplied"
 msgstr ""
 
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
 msgid "Error 403: Permission Denied"
 msgstr ""
 
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
 msgid "You do not have the required permissions to access this function"
 msgstr ""
 
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
 msgid "Error 404: Resource Not Found"
 msgstr ""
 
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
 msgid "The requested resource could not be located on the server"
 msgstr ""
 
-#: templates/js/translated/api.js:217
+#: templates/js/translated/api.js:262
 msgid "Error 405: Method Not Allowed"
 msgstr ""
 
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
 msgid "HTTP method not allowed at URL"
 msgstr ""
 
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
 msgid "Error 408: Timeout"
 msgstr ""
 
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
 msgid "Connection timeout while requesting data from server"
 msgstr ""
 
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
 msgid "Unhandled Error Code"
 msgstr ""
 
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
 msgid "Error code"
 msgstr ""
 
@@ -7765,7 +7761,7 @@ msgid "Unknown response from server"
 msgstr ""
 
 #: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "Invalid server response"
 msgstr ""
 
@@ -7847,12 +7843,12 @@ msgid "Download BOM Template"
 msgstr ""
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
 msgid "Format"
 msgstr ""
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr ""
 
@@ -7932,84 +7928,84 @@ msgstr ""
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
 msgid "Load BOM for subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
 msgid "No Stock Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
 msgid "Includes variant and substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
 #: templates/js/translated/part.js:690
 msgid "Includes variant stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
 msgid "Includes substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -8131,262 +8127,270 @@ msgstr ""
 msgid "Location not specified"
 msgstr ""
 
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
 msgid "No active build outputs found"
 msgstr ""
 
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
 msgid "Allocated Stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
 msgid "No tracked BOM items for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
 msgid "Completed Tests"
 msgstr ""
 
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
 msgid "No required tests for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
 msgid "Edit stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
 msgid "Delete stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
 msgid "Edit Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
 msgid "Remove Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
 msgid "Substitute parts available"
 msgstr ""
 
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
 msgid "Quantity Per"
 msgstr ""
 
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
 msgid "Insufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
 msgid "Sufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
 msgid "Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
 msgid "Build stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
 msgid "Order stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
 msgid "Allocate stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr ""
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
 msgid "You must select at least one part to allocate"
 msgstr ""
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
 msgid "All Parts Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
 msgid "All selected parts have been fully allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
 msgid "Select source location (leave blank to take from all locations)"
 msgstr ""
 
-#: templates/js/translated/build.js:2117
+#: templates/js/translated/build.js:2100
 msgid "Allocate Stock Items to Build Order"
 msgstr ""
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
 msgid "No matching stock locations"
 msgstr ""
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
 msgid "No matching stock items"
 msgstr ""
 
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
 msgid "Automatic Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
 msgstr ""
 
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
 msgid "If a location is specifed, stock will only be allocated from that location"
 msgstr ""
 
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
 msgstr ""
 
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
 msgstr ""
 
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
 msgid "Allocate Stock Items"
 msgstr ""
 
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
 msgid "Select"
 msgstr ""
 
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
 msgid "Build order is overdue"
 msgstr ""
 
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
 msgid "Progress"
 msgstr ""
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
 msgid "No information"
 msgstr ""
 
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
 msgid "No parts allocated for"
 msgstr ""
 
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
 msgid "Add Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
 msgid "Edit Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:342
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr ""
+
+#: templates/js/translated/company.js:595
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
 #: templates/js/translated/part.js:650
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
 #: templates/js/translated/part.js:654
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
 msgid "No supplier parts found"
 msgstr ""
 
@@ -8424,61 +8428,61 @@ msgstr ""
 msgid "Create filter"
 msgstr ""
 
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
 msgid "Action Prohibited"
 msgstr ""
 
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
 msgid "Create operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
 msgid "Update operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
 msgid "Delete operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
 msgid "View operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
 msgid "Keep this form open"
 msgstr ""
 
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
 msgid "Enter a valid number"
 msgstr ""
 
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
 #: templates/modals.html:43
 msgid "Form errors exist"
 msgstr ""
 
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
 msgid "No results found"
 msgstr ""
 
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
 msgid "Searching"
 msgstr ""
 
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
 msgid "Clear input"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "File Column"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "Field Name"
 msgstr ""
 
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
 msgid "Select Columns"
 msgstr ""
 
@@ -8552,62 +8556,62 @@ msgstr ""
 msgid "Select Label Template"
 msgstr ""
 
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
 msgid "Cancel"
 msgstr ""
 
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
 #: templates/modals.html:28 templates/modals.html:51
 msgid "Submit"
 msgstr ""
 
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
 msgid "Form Title"
 msgstr ""
 
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
 msgid "Waiting for server..."
 msgstr ""
 
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
 msgid "Show Error Information"
 msgstr ""
 
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
 msgid "Accept"
 msgstr ""
 
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
 msgid "Loading Data"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Invalid response from server"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Form data missing from server response"
 msgstr ""
 
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
 msgid "Error posting form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "JSON response missing form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
 msgid "Error 400: Bad Request"
 msgstr ""
 
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
 msgid "Server returned error code 400"
 msgstr ""
 
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
 msgid "Error requesting form data"
 msgstr ""
 
@@ -8665,377 +8669,381 @@ msgstr ""
 msgid "Notifications will load here"
 msgstr ""
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
 msgstr ""
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
 msgstr ""
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr ""
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr ""
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr ""
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr ""
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr ""
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr ""
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr ""
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr ""
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr ""
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr ""
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr ""
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
 msgid "Stock Status"
 msgstr ""
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr ""
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr ""
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr ""
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
 msgid "Order is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
 msgid "Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
 msgid "Duplicate Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
 msgid "Edit Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
 msgid "Delete Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1856
 msgid "No line items found"
 msgstr ""
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
 msgid "Total"
 msgstr ""
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
 msgid "Total Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
 msgid "Duplicate line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
 msgid "Edit line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
 msgid "Delete line item"
 msgstr ""
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
 msgid "Duplicate line"
 msgstr ""
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
 msgid "Edit line"
 msgstr ""
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
 msgid "Delete line"
 msgstr ""
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
 msgid "Duplicate Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
 msgid "Edit Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
 msgid "Delete Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2279
 msgid "No matching line"
 msgstr ""
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2392
 msgid "No sales orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2462
 msgid "Invalid Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2549
 msgid "Edit shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2552
 msgid "Complete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2557
 msgid "Delete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2577
 msgid "Edit Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2594
 msgid "Delete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2628
 msgid "No matching shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2638
 msgid "Shipment Reference"
 msgstr ""
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2662
 msgid "Not shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2668
 msgid "Tracking"
 msgstr ""
 
-#: templates/js/translated/order.js:2603
+#: templates/js/translated/order.js:2672
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:2841
 msgid "Add Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2892
 msgid "Confirm stock allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2893
 msgid "Allocate Stock Items to Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:3101
 msgid "No sales order allocations found"
 msgstr ""
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:3182
 msgid "Edit Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:3199
 msgid "Confirm Delete Operation"
 msgstr ""
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:3200
 msgid "Delete Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
 msgid "Shipped to customer"
 msgstr ""
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
 msgid "Stock location not specified"
 msgstr ""
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3623
 msgid "Allocate serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3629
 msgid "Purchase stock"
 msgstr ""
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
 msgid "Calculate price"
 msgstr ""
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3648
 msgid "Cannot be deleted as items have been shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3651
 msgid "Cannot be deleted as items have been allocated"
 msgstr ""
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3733
 msgid "Allocate Serial Numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3842
 msgid "Update Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3856
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:4092
 msgid "No matching lines"
 msgstr ""
 
@@ -9217,7 +9225,7 @@ msgid "No category"
 msgstr ""
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2238
 msgid "Display as list"
 msgstr ""
 
@@ -9225,7 +9233,7 @@ msgstr ""
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
 msgid "Display as tree"
 msgstr ""
 
@@ -9233,7 +9241,7 @@ msgstr ""
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
 msgid "Path"
 msgstr ""
 
@@ -9241,12 +9249,12 @@ msgstr ""
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
 msgid "Delete test result"
 msgstr ""
 
@@ -9367,11 +9375,11 @@ msgstr ""
 msgid "Sales Order(s) must be selected before printing report"
 msgstr ""
 
-#: templates/js/translated/search.js:307
+#: templates/js/translated/search.js:352
 msgid "Minimize results"
 msgstr ""
 
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:355
 msgid "Remove results"
 msgstr ""
 
@@ -9531,204 +9539,204 @@ msgstr ""
 msgid "Confirm stock adjustment"
 msgstr ""
 
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
 msgid "PASS"
 msgstr ""
 
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
 msgid "FAIL"
 msgstr ""
 
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
 msgid "NO RESULT"
 msgstr ""
 
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
 msgid "Pass test"
 msgstr ""
 
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
 msgid "Add test result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
 msgid "No test results found"
 msgstr ""
 
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
 msgid "Test Date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
 msgid "Edit Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
 msgid "Delete Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
 msgid "In production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
 msgid "Installed in Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
 msgid "Assigned to Sales Order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
 msgid "No stock location set"
 msgstr ""
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1712
 msgid "Stock item is in production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1717
 msgid "Stock item assigned to sales order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1720
 msgid "Stock item assigned to customer"
 msgstr ""
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr ""
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr ""
-
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
 msgid "Serialized stock item has been allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
 msgid "Stock item has been fully allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
 msgid "Stock item has been partially allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1730
 msgid "Stock item has been installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1734
+msgid "Stock item has expired"
+msgstr ""
+
+#: templates/js/translated/stock.js:1736
+msgid "Stock item will expire soon"
+msgstr ""
+
+#: templates/js/translated/stock.js:1743
 msgid "Stock item has been rejected"
 msgstr ""
 
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1745
 msgid "Stock item is lost"
 msgstr ""
 
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1747
 msgid "Stock item is destroyed"
 msgstr ""
 
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1751
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr ""
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1802
 msgid "Stocktake"
 msgstr ""
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1884
 msgid "Supplier part not specified"
 msgstr ""
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1922
 msgid "No stock items matching query"
 msgstr ""
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2095
 msgid "Set Stock Status"
 msgstr ""
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2109
 msgid "Select Status Code"
 msgstr ""
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2110
 msgid "Status code must be selected"
 msgstr ""
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2365
 msgid "Details"
 msgstr ""
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2381
 msgid "Part information unavailable"
 msgstr ""
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2403
 msgid "Location no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2422
 msgid "Purchase order no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
 msgid "Customer no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2459
 msgid "Stock item no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2482
 msgid "Added"
 msgstr ""
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2490
 msgid "Removed"
 msgstr ""
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2566
 msgid "No installed items"
 msgstr ""
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
 msgid "Uninstall Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2666
 msgid "Select stock item to uninstall"
 msgstr ""
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2687
 msgid "Install another stock item into this item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2688
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr ""
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2690
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2691
 msgid "The Stock Item is currently available in stock"
 msgstr ""
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2692
 msgid "The Stock Item is not already installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2693
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr ""
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2706
 msgid "Select part to install"
 msgstr ""
 
@@ -9960,69 +9968,81 @@ msgstr ""
 msgid "Purchasable"
 msgstr ""
 
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr ""
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr ""
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
 msgid "Export Table Data"
 msgstr ""
 
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
 msgid "Select File Format"
 msgstr ""
 
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
 msgid "Loading data"
 msgstr ""
 
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
 msgid "rows per page"
 msgstr ""
 
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
 msgid "Showing all rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "Showing"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "to"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "of"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
 #: templates/search.html:8 templates/search_form.html:6
 #: templates/search_form.html:7
 msgid "Search"
 msgstr ""
 
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
 msgid "No matching results"
 msgstr ""
 
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
 msgid "Hide/Show pagination"
 msgstr ""
 
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
 msgid "Refresh"
 msgstr ""
 
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
 msgid "Toggle"
 msgstr ""
 
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
 msgid "Columns"
 msgstr ""
 
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
 msgid "All"
 msgstr ""
 
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po
index b1c97e8929..c5f93f3694 100644
--- a/InvenTree/locale/tr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/tr/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
-"PO-Revision-Date: 2022-05-24 01:42\n"
+"POT-Creation-Date: 2022-05-28 23:41+0000\n"
+"PO-Revision-Date: 2022-05-29 01:47\n"
 "Last-Translator: \n"
 "Language-Team: Turkish\n"
 "Language: tr_TR\n"
@@ -21,7 +21,7 @@ msgstr ""
 msgid "API endpoint not found"
 msgstr "API uç noktası bulunamadı"
 
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
 msgid "Error details can be found in the admin panel"
 msgstr ""
 
@@ -30,7 +30,7 @@ msgid "Enter date"
 msgstr "Tarih giriniz"
 
 #: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
 msgid "Confirm"
 msgstr "Onay"
 
@@ -79,7 +79,7 @@ msgstr "Her seferind eaynı e-posta adresini yazmalısınız."
 msgid "Duplicate serial: {sn}"
 msgstr "Tekrarlanan seri no:{sn}"
 
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
 msgid "Invalid quantity provided"
 msgstr "Geçersiz veri sağlandı"
 
@@ -134,10 +134,12 @@ msgid "Select file to attach"
 msgstr "Eklenecek dosyayı seç"
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:139 order/models.py:1273
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr "Bağlantı"
 
@@ -159,7 +161,7 @@ msgstr "Dosya yorumu"
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2513
 msgid "User"
 msgstr "Kullanıcı"
 
@@ -205,9 +207,10 @@ msgstr "Geçersiz seçim"
 #: templates/InvenTree/settings/plugin.html:132
 #: templates/InvenTree/settings/plugin_settings.html:23
 #: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2283
 msgid "Name"
 msgstr "Adı"
 
@@ -216,22 +219,22 @@ msgstr "Adı"
 #: company/models.py:575 company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
 #: part/templates/part/part_base.html:167
 #: part/templates/part/set_category.html:14 report/models.py:182
 #: report/models.py:547 report/models.py:586
 #: report/templates/report/inventree_build_order_base.html:118
 #: stock/templates/stock/location.html:103
 #: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
 msgid "Description"
 msgstr "Açıklama"
 
@@ -406,7 +409,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:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
 msgid "Pending"
 msgstr "Bekliyor"
 
@@ -414,141 +417,145 @@ msgstr "Bekliyor"
 msgid "Placed"
 msgstr "Sipariş verildi"
 
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
 #: order/templates/order/order_base.html:134
 #: order/templates/order/sales_order_base.html:133
 msgid "Complete"
 msgstr "Tamamlandı"
 
 #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
 msgid "Cancelled"
 msgstr "İptal edildi"
 
 #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
 msgid "Lost"
 msgstr "Kayıp"
 
 #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
 msgid "Returned"
 msgstr "İade"
 
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
 msgid "Shipped"
 msgstr "Sevk edildi"
 
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
 msgid "OK"
 msgstr "TAMAM"
 
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
 msgid "Attention needed"
 msgstr "Dikkat gerekli"
 
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
 msgid "Damaged"
 msgstr "Hasarlı"
 
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
 msgid "Destroyed"
 msgstr "Kullanılamaz durumda"
 
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
 msgid "Rejected"
 msgstr "Reddedildi"
 
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
 msgid "Legacy stock tracking entry"
 msgstr "Eski stok izleme girişi"
 
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
 msgid "Stock item created"
 msgstr "Stok kalemi oluşturuldu"
 
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
 msgid "Edited stock item"
 msgstr "Düzenlenen stok kalemi"
 
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
 msgid "Assigned serial number"
 msgstr "Atanan seri numarası"
 
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
 msgid "Stock counted"
 msgstr "Stok sayıldı"
 
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
 msgid "Stock manually added"
 msgstr "Stok manuel olarak eklendi"
 
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
 msgid "Stock manually removed"
 msgstr "Stok manuel olarak çıkarıldı"
 
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
 msgid "Location changed"
 msgstr "Konum değişti"
 
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
 msgid "Installed into assembly"
 msgstr "Montajda kullanıldı"
 
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
 msgid "Removed from assembly"
 msgstr "Montajdan çıkarıldı"
 
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
 msgid "Installed component item"
 msgstr "Bileşen ögesinde kullanıldı"
 
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
 msgid "Removed component item"
 msgstr "Bileşen ögesinden çıkarıldı"
 
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
 msgid "Split from parent item"
 msgstr "Üst ögeden ayır"
 
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
 msgid "Split child item"
 msgstr "Alt ögeyi ayır"
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
 msgid "Merged stock items"
 msgstr "Stok parçalarını birleştir"
 
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
 msgid "Converted to variant"
 msgstr ""
 
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
 msgid "Sent to customer"
 msgstr "Müşteriye gönderildi"
 
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
 msgid "Returned from customer"
 msgstr "Müşteriden geri döndü"
 
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
 msgid "Build order output created"
 msgstr "Yapım emri çıktısı oluşturuldu"
 
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
 msgid "Build order output completed"
 msgstr "Yapım emri çıktısı tamamlandı"
 
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
 msgid "Consumed by build order"
 msgstr ""
 
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
 msgid "Received against purchase order"
 msgstr "Satın alma emri karşılığında alındı"
 
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
 msgid "Production"
 msgstr "Üretim"
 
@@ -637,15 +644,15 @@ msgstr "Yapım İşi Emirleri"
 msgid "Build Order Reference"
 msgstr "Yapım İşi Emri Referansı"
 
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
 #: part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
 msgid "Reference"
 msgstr "Referans"
 
@@ -664,7 +671,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:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
 #: part/models.py:2303 part/models.py:2319 part/models.py:2338
 #: part/models.py:2355 part/models.py:2457 part/models.py:2579
 #: part/models.py:2669 part/models.py:2760 part/models.py:3050
@@ -679,19 +686,21 @@ 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:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
 msgid "Part"
 msgstr "Parça"
 
@@ -708,7 +717,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr "Bu yapım işinin tahsis edildiği satış emri"
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
 msgid "Source Location"
 msgstr "Kaynak Konum"
 
@@ -749,7 +758,7 @@ msgid "Build status code"
 msgstr "Yapım işi durum kodu"
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr "Sıra numarası"
 
@@ -757,12 +766,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:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
 msgid "Creation Date"
 msgstr "Oluşturulma tarihi"
 
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
 msgid "Target completion date"
 msgstr "Hedef tamamlama tarihi"
 
@@ -770,8 +779,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:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
 msgid "Completion Date"
 msgstr "Tamamlama tarihi"
 
@@ -779,7 +788,7 @@ msgstr "Tamamlama tarihi"
 msgid "completed by"
 msgstr "tamamlayan"
 
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
 msgid "Issued by"
 msgstr "Veren"
 
@@ -788,11 +797,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:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
 msgid "Responsible"
 msgstr "Sorumlu"
 
@@ -804,14 +813,14 @@ msgstr "Bu yapım işi emrinden sorumlu kullanıcı"
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr "Harici Bağlantı"
 
 #: build/models.py:334 build/serializers.py:390
 #: build/templates/build/sidebar.html:21 company/models.py:134
 #: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
 #: order/templates/order/po_sidebar.html:11
 #: order/templates/order/so_sidebar.html:17 part/models.py:983
 #: part/templates/part/part_sidebar.html:59
@@ -820,11 +829,11 @@ msgstr "Harici Bağlantı"
 #: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
 msgid "Notes"
 msgstr "Notlar"
 
@@ -857,7 +866,7 @@ msgstr ""
 msgid "Stock item is over-allocated"
 msgstr "Stok kalemi fazladan tahsis edilmiş"
 
-#: build/models.py:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1413
 msgid "Allocation quantity must be greater than zero"
 msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır"
 
@@ -869,8 +878,8 @@ msgstr "Seri numaralı stok için miktar bir olmalı"
 msgid "Selected stock item not found in BOM"
 msgstr ""
 
-#: build/models.py:1375 stock/templates/stock/item_base.html:335
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
 #: templates/navbar.html:38
 msgid "Build"
 msgstr "Yapım İşi"
@@ -879,18 +888,18 @@ msgstr "Yapım İşi"
 msgid "Build to allocate parts"
 msgstr "Yapım işi için tahsis edilen parçalar"
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2449
 msgid "Stock Item"
 msgstr "Stok Kalemi"
 
@@ -902,10 +911,10 @@ msgstr "Kaynak stok kalemi"
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_build_order_base.html:114
@@ -913,25 +922,24 @@ msgstr "Kaynak stok kalemi"
 #: 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
 msgid "Quantity"
 msgstr "Miktar"
 
@@ -948,7 +956,7 @@ msgid "Destination stock item"
 msgstr "Hedef stok kalemi"
 
 #: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
 msgid "Build Output"
 msgstr ""
 
@@ -972,7 +980,7 @@ msgstr ""
 msgid "Enter quantity for build output"
 msgstr "Yapım işi çıktısı için miktarını girin"
 
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
 #: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
 #: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
 #: stock/serializers.py:294
@@ -987,8 +995,8 @@ msgstr ""
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr ""
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr "Seri Numaraları"
@@ -1015,15 +1023,15 @@ msgstr ""
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
 msgid "Location"
 msgstr "Konum"
 
@@ -1032,12 +1040,12 @@ msgid "Location for completed build outputs"
 msgstr ""
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: build/templates/build/detail.html:62 order/models.py:663
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
 msgid "Status"
 msgstr "Durum"
 
@@ -1118,7 +1126,7 @@ msgstr ""
 msgid "Item must be in stock"
 msgstr ""
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr ""
@@ -1135,7 +1143,7 @@ msgstr ""
 msgid "This stock item has already been allocated to this build output"
 msgstr ""
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr ""
 
@@ -1233,13 +1241,13 @@ msgid "Stock has not been fully allocated to this Build Order"
 msgstr "Stok, yapım işi emri için tamamen tahsis edilemedi"
 
 #: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr "Hedeflenen tarih"
 
@@ -1266,14 +1274,14 @@ msgid "Completed"
 msgstr "Tamamlandı"
 
 #: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2436
 msgid "Sales Order"
 msgstr "Sipariş Emri"
 
@@ -1308,8 +1316,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:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
 msgid "Destination"
 msgstr "Hedef"
 
@@ -1322,11 +1330,11 @@ msgid "Allocated Parts"
 msgstr ""
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
-#: templates/js/translated/build.js:1184
+#: stock/templates/stock/item_base.html:170
+#: templates/js/translated/build.js:1179
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1335,7 +1343,7 @@ msgstr "Toplu"
 #: build/templates/build/detail.html:126
 #: order/templates/order/order_base.html:149
 #: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
 msgid "Created"
 msgstr "Oluşturuldu"
 
@@ -1355,7 +1363,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:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
 msgid "Unallocate stock"
 msgstr "Stok tahsisini kaldır"
 
@@ -1385,8 +1393,8 @@ msgstr "Gerekli parçaları sipariş edin"
 
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: company/templates/company/detail.html:85
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr "Parça Siparişi"
 
@@ -1461,8 +1469,8 @@ msgid "Completed Build Outputs"
 msgstr "Tamamlanmış Yapım İşi Çıktıları"
 
 #: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
 #: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:82
 #: order/templates/order/sales_order_detail.html:129
@@ -1476,11 +1484,11 @@ msgstr "Ekler"
 msgid "Build Notes"
 msgstr "Yapım İşi Notları"
 
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
 msgid "Allocation Complete"
 msgstr ""
 
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
@@ -1492,18 +1500,6 @@ msgstr "Yeni Yapım İşi Emri"
 msgid "Print Build Orders"
 msgstr "Yapım İşi Emirlerini Yazdır"
 
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr "Takvim görünümünü görüntüle"
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr "Liste görünümünü görüntüle"
-
 #: build/templates/build/sidebar.html:5
 msgid "Build Order Details"
 msgstr ""
@@ -1727,7 +1723,7 @@ msgstr "Şablon"
 msgid "Parts are templates by default"
 msgstr "Parçaları varsayılan olan şablondur"
 
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
 #: templates/js/translated/table_filters.js:168
 #: templates/js/translated/table_filters.js:460
 msgid "Assembly"
@@ -2413,7 +2409,7 @@ msgid "Price break quantity"
 msgstr ""
 
 #: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: company/templates/company/supplier_part.html:263 order/models.py:975
 #: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
 msgid "Price"
 msgstr "Fiyat"
@@ -2556,7 +2552,7 @@ msgstr ""
 
 #: company/models.py:104 company/templates/company/company_base.html:100
 #: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
 msgid "Website"
 msgstr ""
 
@@ -2651,10 +2647,11 @@ msgstr "Parça seçin"
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: stock/templates/stock/item_base.html:212
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
 #: templates/js/translated/table_filters.js:411
 msgid "Manufacturer"
 msgstr "Üretici"
@@ -2665,8 +2662,10 @@ msgstr "Üretici seçin"
 
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr "ÜPN"
@@ -2686,7 +2685,7 @@ msgstr ""
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr ""
 
@@ -2696,8 +2695,9 @@ msgstr "Parametre adı"
 
 #: company/models.py:427
 #: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
 msgid "Value"
 msgstr "Değer"
 
@@ -2708,7 +2708,7 @@ msgstr "Parametre değeri"
 #: company/models.py:434 part/models.py:940 part/models.py:2549
 #: part/templates/part/part_base.html:280
 #: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
 msgid "Units"
 msgstr ""
 
@@ -2721,11 +2721,12 @@ msgid "Linked manufacturer part must reference the same base part"
 msgstr ""
 
 #: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: stock/templates/stock/item_base.html:229
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2736,8 +2737,9 @@ msgid "Select supplier"
 msgstr "Tedarikçi seçin"
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
 msgid "SKU"
 msgstr ""
 
@@ -2773,8 +2775,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr ""
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
 msgid "Packaging"
 msgstr "Paketleme"
 
@@ -2804,12 +2806,12 @@ msgstr "Para Birimi Kodu"
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
 msgid "Company"
 msgstr ""
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr "Satın Alma Emri Oluştur"
 
@@ -2822,7 +2824,7 @@ msgid "Edit company information"
 msgstr ""
 
 #: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
 msgid "Edit Company"
 msgstr ""
 
@@ -2845,12 +2847,12 @@ msgstr ""
 msgid "Download image from URL"
 msgstr ""
 
-#: company/templates/company/company_base.html:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr "Müşteri"
@@ -2869,7 +2871,7 @@ msgid "Upload Image"
 msgstr ""
 
 #: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
+#: company/templates/company/manufacturer_part_sidebar.html:7
 #: templates/InvenTree/search.html:118
 msgid "Supplier Parts"
 msgstr "Tedarikçi Parçaları"
@@ -2884,28 +2886,19 @@ msgstr "Yeni tedarikçi parçası oluştur"
 msgid "New Supplier Part"
 msgstr "Yeni Tedarikçi Parçası"
 
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr ""
-
 #: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
 #: part/templates/part/category.html:176
 msgid "Order parts"
 msgstr ""
 
 #: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
 msgid "Delete parts"
 msgstr "Parçaları sil"
 
 #: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
 msgid "Delete Parts"
 msgstr "Parçaları Sil"
 
@@ -2917,88 +2910,76 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
 msgid "New Manufacturer Part"
 msgstr ""
 
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
 msgid "Supplier Stock"
 msgstr "Tedarikçi Stoku"
 
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
 #: company/templates/company/sidebar.html:12
 #: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
 #: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:235 templates/navbar.html:50
 #: users/models.py:43
 msgid "Purchase Orders"
 msgstr "Satın Alma Emirleri"
 
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
 #: order/templates/order/purchase_orders.html:17
 msgid "Create new purchase order"
 msgstr "Yeni satın alma emri oluştur"
 
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr "Yeni Satın Alma Emri"
 
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
 #: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
 #: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
 #: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:259 templates/navbar.html:61
 #: users/models.py:44
 msgid "Sales Orders"
 msgstr "Satış Emirleri"
 
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
 #: order/templates/order/sales_orders.html:20
 msgid "Create new sales order"
 msgstr "Yeni satış emri oluştur"
 
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
 #: order/templates/order/sales_orders.html:21
 msgid "New Sales Order"
 msgstr "Yeni Satış Emri"
 
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
 msgid "Assigned Stock"
 msgstr "Atanan Stok"
 
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
 msgid "Company Notes"
 msgstr ""
 
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr ""
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr ""
-
 #: company/templates/company/index.html:8
 msgid "Supplier List"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
 #: templates/navbar.html:49
 msgid "Manufacturers"
 msgstr "Üreticiler"
@@ -3011,12 +2992,12 @@ msgid "Order part"
 msgstr "Parça siparişi"
 
 #: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -3032,55 +3013,46 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:119
 #: company/templates/company/supplier_part.html:15 company/views.py:41
 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
 msgid "Suppliers"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
 #: part/templates/part/detail.html:363
 msgid "Delete supplier parts"
 msgstr "Tedarikçi parçalarını sil"
 
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
 msgid "Delete"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:164
+#: company/templates/company/manufacturer_part.html:166
 #: company/templates/company/manufacturer_part_sidebar.html:5
 #: part/templates/part/category_sidebar.html:19
 #: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8
 msgid "Parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
 #: part/templates/part/detail.html:184
 #: templates/InvenTree/settings/category.html:12
 #: templates/InvenTree/settings/part.html:66
 msgid "New Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
 msgid "Delete parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
 msgid "Add Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr ""
-
 #: company/templates/company/sidebar.html:6
 msgid "Manufactured Parts"
 msgstr ""
@@ -3099,19 +3071,19 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
 msgid "Supplier Part"
 msgstr "Tedarikçi Parçası"
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
 msgid "Edit supplier part"
 msgstr "Tedarikçi parçasını düzenle"
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
 msgid "Delete supplier part"
 msgstr "Tedarikçi parçasını sil"
 
@@ -3186,11 +3158,11 @@ msgstr ""
 #: part/templates/part/part_sidebar.html:14
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
 #: templates/InvenTree/settings/sidebar.html:43
 #: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
 #: templates/navbar.html:31
 msgid "Stock"
 msgstr "Stok"
@@ -3216,8 +3188,8 @@ msgstr "Fiyatlandırma"
 #: stock/templates/stock/location.html:161
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
+#: templates/js/translated/stock.js:2307 users/models.py:41
 msgid "Stock Items"
 msgstr "Stok Kalemleri"
 
@@ -3229,7 +3201,7 @@ msgstr "Yeni Tedarikçi"
 msgid "New Manufacturer"
 msgstr "Yeni Üretici"
 
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
 #: templates/navbar.html:60
 msgid "Customers"
 msgstr "Müşteriler"
@@ -3238,7 +3210,7 @@ msgstr "Müşteriler"
 msgid "New Customer"
 msgstr "Yeni Müşteri"
 
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:212
 msgid "Companies"
 msgstr "Şirketler"
 
@@ -3328,305 +3300,313 @@ msgstr ""
 msgid "Part query filters (comma-separated value of key=value pairs)"
 msgstr ""
 
-#: order/models.py:130
+#: order/models.py:137
 msgid "Order description"
 msgstr "Sipariş açıklaması"
 
-#: order/models.py:132
+#: order/models.py:139 order/models.py:1274
 msgid "Link to external page"
 msgstr "Harici sayfaya bağlantı"
 
-#: order/models.py:140
+#: order/models.py:147
 msgid "Created By"
 msgstr "Oluşturan"
 
-#: order/models.py:147
+#: order/models.py:154
 msgid "User or group responsible for this order"
 msgstr ""
 
-#: order/models.py:152
+#: order/models.py:159
 msgid "Order notes"
 msgstr "Sipariş notları"
 
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
 msgid "Order reference"
 msgstr "Sipariş referansı"
 
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
 msgid "Purchase order status"
 msgstr ""
 
-#: order/models.py:253
+#: order/models.py:311
 msgid "Company from which the items are being ordered"
 msgstr ""
 
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
 msgid "Supplier Reference"
 msgstr ""
 
-#: order/models.py:256
+#: order/models.py:314
 msgid "Supplier order reference code"
 msgstr ""
 
-#: order/models.py:263
+#: order/models.py:321
 msgid "received by"
 msgstr ""
 
-#: order/models.py:268
+#: order/models.py:326
 msgid "Issue Date"
 msgstr ""
 
-#: order/models.py:269
+#: order/models.py:327
 msgid "Date order was issued"
 msgstr ""
 
-#: order/models.py:274
+#: order/models.py:332
 msgid "Target Delivery Date"
 msgstr ""
 
-#: order/models.py:275
+#: order/models.py:333
 msgid "Expected date for order delivery. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:281
+#: order/models.py:339
 msgid "Date order was completed"
 msgstr ""
 
-#: order/models.py:310
+#: order/models.py:368
 msgid "Part supplier must match PO supplier"
 msgstr ""
 
-#: order/models.py:456
+#: order/models.py:514
 msgid "Quantity must be a positive number"
 msgstr ""
 
-#: order/models.py:601
+#: order/models.py:659
 msgid "Company to which the items are being sold"
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer Reference "
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer order reference code"
 msgstr ""
 
-#: order/models.py:612
+#: order/models.py:670
 msgid "Target date for order completion. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
 msgid "Shipment Date"
 msgstr ""
 
-#: order/models.py:622
+#: order/models.py:680
 msgid "shipped by"
 msgstr ""
 
-#: order/models.py:688
+#: order/models.py:746
 msgid "Order cannot be completed as no parts have been assigned"
 msgstr ""
 
-#: order/models.py:692
+#: order/models.py:750
 msgid "Only a pending order can be marked as complete"
 msgstr ""
 
-#: order/models.py:695
+#: order/models.py:753
 msgid "Order cannot be completed as there are incomplete shipments"
 msgstr ""
 
-#: order/models.py:698
+#: order/models.py:756
 msgid "Order cannot be completed as there are incomplete line items"
 msgstr ""
 
-#: order/models.py:878
+#: order/models.py:936
 msgid "Item quantity"
 msgstr ""
 
-#: order/models.py:884
+#: order/models.py:942
 msgid "Line item reference"
 msgstr ""
 
-#: order/models.py:886
+#: order/models.py:944
 msgid "Line item notes"
 msgstr ""
 
-#: order/models.py:891
+#: order/models.py:949
 msgid "Target shipping date for this line item"
 msgstr ""
 
-#: order/models.py:909
+#: order/models.py:967
 msgid "Context"
 msgstr ""
 
-#: order/models.py:910
+#: order/models.py:968
 msgid "Additional context for this line"
 msgstr ""
 
-#: order/models.py:918
+#: order/models.py:976
 msgid "Unit price"
 msgstr ""
 
-#: order/models.py:951
+#: order/models.py:1009
 msgid "Supplier part must match supplier"
 msgstr ""
 
-#: order/models.py:958
+#: order/models.py:1016
 msgid "deleted"
 msgstr ""
 
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
 msgid "Order"
 msgstr ""
 
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
 msgid "Purchase Order"
 msgstr ""
 
-#: order/models.py:984
+#: order/models.py:1042
 msgid "Supplier part"
 msgstr ""
 
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
 msgstr ""
 
-#: order/models.py:992
+#: order/models.py:1050
 msgid "Number of items received"
 msgstr ""
 
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1900
 msgid "Purchase Price"
 msgstr ""
 
-#: order/models.py:1000
+#: order/models.py:1058
 msgid "Unit purchase price"
 msgstr ""
 
-#: order/models.py:1008
+#: order/models.py:1066
 msgid "Where does the Purchaser want this item to be stored?"
 msgstr ""
 
-#: order/models.py:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
 #: part/templates/part/prices.html:119 part/templates/part/prices.html:288
 msgid "Sale Price"
 msgstr ""
 
-#: order/models.py:1079
+#: order/models.py:1137
 msgid "Unit sale price"
 msgstr ""
 
-#: order/models.py:1084
+#: order/models.py:1142
 msgid "Shipped quantity"
 msgstr ""
 
-#: order/models.py:1171
+#: order/models.py:1229
 msgid "Date of shipment"
 msgstr ""
 
-#: order/models.py:1178
+#: order/models.py:1236
 msgid "Checked By"
 msgstr ""
 
-#: order/models.py:1179
+#: order/models.py:1237
 msgid "User who checked this shipment"
 msgstr ""
 
-#: order/models.py:1187
+#: order/models.py:1245
 msgid "Shipment number"
 msgstr ""
 
-#: order/models.py:1194
+#: order/models.py:1252
 msgid "Shipment notes"
 msgstr ""
 
-#: order/models.py:1201
+#: order/models.py:1259
 msgid "Tracking Number"
 msgstr ""
 
-#: order/models.py:1202
+#: order/models.py:1260
 msgid "Shipment tracking information"
 msgstr ""
 
-#: order/models.py:1213
+#: order/models.py:1267
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1268
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1285
 msgid "Shipment has already been sent"
 msgstr ""
 
-#: order/models.py:1216
+#: order/models.py:1288
 msgid "Shipment has no allocated stock items"
 msgstr ""
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1395 order/models.py:1397
 msgid "Stock item has not been assigned"
 msgstr ""
 
-#: order/models.py:1317
+#: order/models.py:1401
 msgid "Cannot allocate stock item to a line with a different part"
 msgstr ""
 
-#: order/models.py:1319
+#: order/models.py:1403
 msgid "Cannot allocate stock to a line without a part"
 msgstr ""
 
-#: order/models.py:1322
+#: order/models.py:1406
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr "Tahsis miktarı stok miktarını aşamaz"
 
-#: order/models.py:1326
+#: order/models.py:1410
 msgid "StockItem is over-allocated"
 msgstr "Stok kalemi fazladan tahsis edilmiş"
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1416 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr "Seri numaralı stok kalemi için miktar bir olmalı"
 
-#: order/models.py:1335
+#: order/models.py:1419
 msgid "Sales order does not match shipment"
 msgstr ""
 
-#: order/models.py:1336
+#: order/models.py:1420
 msgid "Shipment does not match sales order"
 msgstr ""
 
-#: order/models.py:1344
+#: order/models.py:1428
 msgid "Line"
 msgstr ""
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr ""
 
-#: order/models.py:1353
+#: order/models.py:1437
 msgid "Sales order shipment reference"
 msgstr ""
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr ""
 
-#: order/models.py:1366
+#: order/models.py:1450
 msgid "Select stock item to allocate"
 msgstr ""
 
-#: order/models.py:1369
+#: order/models.py:1453
 msgid "Enter stock allocation quantity"
 msgstr "Stok tahsis miktarını girin"
 
@@ -3662,7 +3642,7 @@ msgstr ""
 msgid "Purchase order must match supplier"
 msgstr ""
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr ""
 
@@ -3674,11 +3654,11 @@ msgstr ""
 msgid "Select destination location for received items"
 msgstr ""
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr ""
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr ""
 
@@ -3714,35 +3694,35 @@ msgstr ""
 msgid "Sale price currency"
 msgstr ""
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr ""
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr ""
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr ""
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr ""
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr ""
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr ""
 
@@ -3832,7 +3812,12 @@ msgstr ""
 msgid "Total cost"
 msgstr ""
 
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
 msgid "Edit Purchase Order"
 msgstr ""
 
@@ -3863,9 +3848,9 @@ msgstr "Tedarikçi Parçası Seçin"
 #: part/templates/part/import_wizard/ajax_match_references.html:42
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3929,7 +3914,7 @@ msgstr ""
 msgid "Order Notes"
 msgstr "Sipariş Notları"
 
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
 msgid "Add Order Line"
 msgstr ""
 
@@ -3947,12 +3932,12 @@ msgid "Print packing list"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
 msgid "Complete Sales Order"
 msgstr ""
 
@@ -3961,7 +3946,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2471
 msgid "Customer Reference"
 msgstr ""
 
@@ -3971,7 +3956,7 @@ msgstr ""
 msgid "Completed Shipments"
 msgstr ""
 
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
 msgid "Edit Sales Order"
 msgstr ""
 
@@ -3985,7 +3970,7 @@ msgid "Pending Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
 msgid "Actions"
 msgstr "İşlemler"
 
@@ -4113,7 +4098,7 @@ msgid "Part Category"
 msgstr ""
 
 #: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
 #: users/models.py:38
 msgid "Part Categories"
 msgstr "Parça Kategorileri"
@@ -4124,7 +4109,7 @@ msgstr "Parça Kategorileri"
 #: part/templates/part/category_sidebar.html:9
 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
 #: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
 #: templates/navbar.html:24 users/models.py:39
 msgid "Parts"
 msgstr "Parçalar"
@@ -4202,7 +4187,7 @@ msgstr ""
 
 #: part/models.py:842 part/templates/part/part_base.html:266
 #: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
 msgid "IPN"
 msgstr "DPN"
 
@@ -4316,7 +4301,7 @@ msgid "Test with this name already exists for this part"
 msgstr ""
 
 #: part/models.py:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
 msgid "Test Name"
 msgstr "Test Adı"
 
@@ -4448,7 +4433,7 @@ msgid "BOM quantity for this BOM item"
 msgstr ""
 
 #: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
 #: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
@@ -4482,7 +4467,7 @@ msgid "BOM line checksum"
 msgstr ""
 
 #: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
 #: templates/js/translated/table_filters.js:68
 #: templates/js/translated/table_filters.js:88
 msgid "Inherited"
@@ -4493,7 +4478,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr "Bu malzeme listesi, çeşit parçalar listesini kalıtsalıdır"
 
 #: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
 msgid "Allow Variants"
 msgstr "Çeşide İzin Ver"
 
@@ -4714,6 +4699,11 @@ msgstr ""
 msgid "New Part"
 msgstr ""
 
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr ""
+
 #: part/templates/part/category.html:172
 msgid "Set category"
 msgstr "Kategori ayarla"
@@ -4902,46 +4892,46 @@ msgstr ""
 msgid "Part Suppliers"
 msgstr "Parça Tedarikçileri"
 
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
 msgid "Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
 msgid "Add Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
@@ -5084,8 +5074,8 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
 #: templates/js/translated/model_renderers.js:192
 #: templates/js/translated/part.js:581 templates/js/translated/part.js:658
 msgid "Inactive"
@@ -5101,20 +5091,22 @@ 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:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr ""
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr ""
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
 msgid "Can Build"
 msgstr ""
 
@@ -5133,7 +5125,7 @@ msgid "Latest Serial Number"
 msgstr "Son Seri Numarası"
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr ""
 
@@ -5172,7 +5164,7 @@ msgid "Total Cost"
 msgstr "Toplam Maliyet"
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -5291,7 +5283,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
 msgid "Supplier Cost"
 msgstr ""
 
@@ -5530,7 +5522,7 @@ msgstr ""
 msgid "Barcode associated with Stock Item"
 msgstr ""
 
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
 msgid "Label printing failed"
 msgstr ""
 
@@ -5770,12 +5762,12 @@ msgid "Stock Item Test Report"
 msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr "Seri Numara"
 
@@ -5796,7 +5788,7 @@ msgstr ""
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
 msgid "Date"
 msgstr ""
 
@@ -5815,7 +5807,7 @@ msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2589
 msgid "Serial"
 msgstr "Seri No"
 
@@ -5832,7 +5824,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr ""
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr ""
 
@@ -5894,7 +5886,7 @@ msgstr ""
 msgid "Packaging this stock item is stored in"
 msgstr ""
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr ""
 
@@ -5934,8 +5926,8 @@ msgstr ""
 msgid "Destination Sales Order"
 msgstr ""
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1816
 msgid "Expiry Date"
 msgstr ""
 
@@ -6215,11 +6207,11 @@ msgstr ""
 msgid "Installed Stock Items"
 msgstr ""
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
 msgid "Install Stock Item"
 msgstr ""
 
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
 msgid "Add Test Result"
 msgstr ""
 
@@ -6311,110 +6303,114 @@ msgstr ""
 msgid "Delete stock item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-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:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-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:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:244
-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:252
-msgid "This stock item is allocated to Sales Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr "Bu stok kalemi seri numaları - Benzersiz bir seri numarasına sahip ve miktarı ayarlanamaz."
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr "Konum ayarlanmadı"
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr ""
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:284
+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:292
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr "Bu stok kalemi seri numaları - Benzersiz bir seri numarasına sahip ve miktarı ayarlanamaz."
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1693
+msgid "No location set"
+msgstr "Konum ayarlanmadı"
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+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:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+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:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1832
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr ""
 
@@ -6486,8 +6482,8 @@ msgstr "Bu konumun sahipleri listesinde değilsiniz. Bu stok konumu düzenleneme
 msgid "Sublocations"
 msgstr "Alt konumlar"
 
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:198 users/models.py:40
 msgid "Stock Locations"
 msgstr "Stok Konumları"
 
@@ -6539,7 +6535,7 @@ msgstr ""
 msgid "Child Items"
 msgstr ""
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr "Stok Kalemine Dönüştür"
 
@@ -6564,55 +6560,55 @@ msgstr "Bu işlem kolayca geri alınamaz"
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr ""
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr "Stok Konumu QR Kodu"
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr ""
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr "Geçerli bir konum belirtiniz"
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr ""
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr ""
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr ""
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr "Onay kutusunu işaretleyin"
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr ""
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr "Stok Konumunu Sil"
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr ""
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr ""
 
@@ -7331,9 +7327,9 @@ msgstr "InvenTree Sürüm Bilgisi"
 
 #: templates/about.html:11 templates/about.html:105
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr "Kapat"
@@ -7602,14 +7598,14 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
 #: templates/js/translated/part.js:530
 #: templates/js/translated/table_filters.js:178
 msgid "Available"
@@ -7644,67 +7640,67 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
-#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
 msgid "No Response"
 msgstr "Cevap Yok"
 
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
 msgid "No response from the InvenTree server"
 msgstr ""
 
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
 msgid "Error 400: Bad request"
 msgstr ""
 
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
 msgid "API request returned error code 400"
 msgstr ""
 
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
 msgid "Error 401: Not Authenticated"
 msgstr ""
 
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
 msgid "Authentication credentials not supplied"
 msgstr ""
 
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
 msgid "Error 403: Permission Denied"
 msgstr ""
 
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
 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:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
 msgid "Error 404: Resource Not Found"
 msgstr ""
 
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
 msgid "The requested resource could not be located on the server"
 msgstr ""
 
-#: templates/js/translated/api.js:217
+#: templates/js/translated/api.js:262
 msgid "Error 405: Method Not Allowed"
 msgstr ""
 
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
 msgid "HTTP method not allowed at URL"
 msgstr ""
 
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
 msgid "Error 408: Timeout"
 msgstr ""
 
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
 msgid "Connection timeout while requesting data from server"
 msgstr ""
 
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
 msgid "Unhandled Error Code"
 msgstr ""
 
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
 msgid "Error code"
 msgstr ""
 
@@ -7765,7 +7761,7 @@ msgid "Unknown response from server"
 msgstr ""
 
 #: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "Invalid server response"
 msgstr ""
 
@@ -7847,12 +7843,12 @@ msgid "Download BOM Template"
 msgstr ""
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
 msgid "Format"
 msgstr ""
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr ""
 
@@ -7932,84 +7928,84 @@ msgstr ""
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
 msgid "Load BOM for subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
 msgid "No Stock Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
 msgid "Includes variant and substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
 #: templates/js/translated/part.js:690
 msgid "Includes variant stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
 msgid "Includes substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
 msgid "Required Part"
 msgstr "Gerekli Parça"
 
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -8131,262 +8127,270 @@ msgstr ""
 msgid "Location not specified"
 msgstr ""
 
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
 msgid "No active build outputs found"
 msgstr ""
 
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
 msgid "Allocated Stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
 msgid "No tracked BOM items for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
 msgid "Completed Tests"
 msgstr ""
 
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
 msgid "No required tests for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
 msgid "Edit stock allocation"
 msgstr "Stok tahsisini düzenle"
 
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
 msgid "Delete stock allocation"
 msgstr "Stok tahsisini sil"
 
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
 msgid "Edit Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
 msgid "Remove Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
 msgid "Substitute parts available"
 msgstr ""
 
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
 msgid "Quantity Per"
 msgstr ""
 
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
 msgid "Insufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
 msgid "Sufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
 msgid "Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
 msgid "Build stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
 msgid "Order stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
 msgid "Allocate stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr "Parçaları Seçin"
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
 msgid "You must select at least one part to allocate"
 msgstr ""
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
 msgid "All Parts Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
 msgid "All selected parts have been fully allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
 msgid "Select source location (leave blank to take from all locations)"
 msgstr ""
 
-#: templates/js/translated/build.js:2117
+#: templates/js/translated/build.js:2100
 msgid "Allocate Stock Items to Build Order"
 msgstr ""
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
 msgid "No matching stock locations"
 msgstr ""
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
 msgid "No matching stock items"
 msgstr ""
 
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
 msgid "Automatic Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
 msgstr ""
 
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
 msgid "If a location is specifed, stock will only be allocated from that location"
 msgstr ""
 
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
 msgstr ""
 
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
 msgstr ""
 
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
 msgid "Allocate Stock Items"
 msgstr ""
 
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
 msgid "Select"
 msgstr ""
 
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
 msgid "Build order is overdue"
 msgstr ""
 
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
 msgid "Progress"
 msgstr ""
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
 msgid "No information"
 msgstr ""
 
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
 msgid "No parts allocated for"
 msgstr ""
 
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
 msgid "Add Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
 msgid "Edit Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:342
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr ""
+
+#: templates/js/translated/company.js:595
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
 #: templates/js/translated/part.js:650
 msgid "Template part"
 msgstr "Şablon Parça"
 
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
 #: templates/js/translated/part.js:654
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
 msgid "No supplier parts found"
 msgstr ""
 
@@ -8424,61 +8428,61 @@ msgstr ""
 msgid "Create filter"
 msgstr ""
 
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
 msgid "Action Prohibited"
 msgstr ""
 
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
 msgid "Create operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
 msgid "Update operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
 msgid "Delete operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
 msgid "View operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
 msgid "Keep this form open"
 msgstr ""
 
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
 msgid "Enter a valid number"
 msgstr ""
 
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
 #: templates/modals.html:43
 msgid "Form errors exist"
 msgstr ""
 
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
 msgid "No results found"
 msgstr ""
 
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
 msgid "Searching"
 msgstr ""
 
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
 msgid "Clear input"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "File Column"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "Field Name"
 msgstr ""
 
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
 msgid "Select Columns"
 msgstr ""
 
@@ -8552,62 +8556,62 @@ msgstr ""
 msgid "Select Label Template"
 msgstr "Etiket Şablonu Seç"
 
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
 msgid "Cancel"
 msgstr ""
 
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
 #: templates/modals.html:28 templates/modals.html:51
 msgid "Submit"
 msgstr ""
 
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
 msgid "Form Title"
 msgstr ""
 
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
 msgid "Waiting for server..."
 msgstr ""
 
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
 msgid "Show Error Information"
 msgstr ""
 
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
 msgid "Accept"
 msgstr ""
 
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
 msgid "Loading Data"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Invalid response from server"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Form data missing from server response"
 msgstr ""
 
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
 msgid "Error posting form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "JSON response missing form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
 msgid "Error 400: Bad Request"
 msgstr ""
 
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
 msgid "Server returned error code 400"
 msgstr ""
 
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
 msgid "Error requesting form data"
 msgstr ""
 
@@ -8665,377 +8669,381 @@ msgstr ""
 msgid "Notifications will load here"
 msgstr ""
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
 msgstr ""
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
 msgstr ""
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr ""
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr ""
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr ""
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr ""
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr ""
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr ""
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr ""
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr ""
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr ""
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr ""
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr ""
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
 msgid "Stock Status"
 msgstr ""
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr ""
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr ""
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr ""
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
 msgid "Order is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
 msgid "Items"
 msgstr "Ürünler"
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
 msgid "Duplicate Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
 msgid "Edit Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
 msgid "Delete Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1856
 msgid "No line items found"
 msgstr ""
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
 msgid "Total"
 msgstr ""
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
 msgid "Total Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
 msgid "Duplicate line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
 msgid "Edit line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
 msgid "Delete line item"
 msgstr ""
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
 msgid "Duplicate line"
 msgstr ""
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
 msgid "Edit line"
 msgstr ""
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
 msgid "Delete line"
 msgstr ""
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
 msgid "Duplicate Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
 msgid "Edit Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
 msgid "Delete Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2279
 msgid "No matching line"
 msgstr ""
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2392
 msgid "No sales orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2462
 msgid "Invalid Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2549
 msgid "Edit shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2552
 msgid "Complete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2557
 msgid "Delete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2577
 msgid "Edit Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2594
 msgid "Delete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2628
 msgid "No matching shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2638
 msgid "Shipment Reference"
 msgstr ""
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2662
 msgid "Not shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2668
 msgid "Tracking"
 msgstr ""
 
-#: templates/js/translated/order.js:2603
+#: templates/js/translated/order.js:2672
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:2841
 msgid "Add Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2892
 msgid "Confirm stock allocation"
 msgstr "Stok tahsisini onayla"
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2893
 msgid "Allocate Stock Items to Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:3101
 msgid "No sales order allocations found"
 msgstr ""
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:3182
 msgid "Edit Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:3199
 msgid "Confirm Delete Operation"
 msgstr "Silme İşlemini Onayla"
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:3200
 msgid "Delete Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
 msgid "Shipped to customer"
 msgstr ""
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
 msgid "Stock location not specified"
 msgstr ""
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3623
 msgid "Allocate serial numbers"
 msgstr "Seri numaralarını tahsis et"
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3629
 msgid "Purchase stock"
 msgstr ""
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
 msgid "Calculate price"
 msgstr ""
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3648
 msgid "Cannot be deleted as items have been shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3651
 msgid "Cannot be deleted as items have been allocated"
 msgstr ""
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3733
 msgid "Allocate Serial Numbers"
 msgstr "Seri Numaralarını Tahsis Et"
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3842
 msgid "Update Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3856
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:4092
 msgid "No matching lines"
 msgstr ""
 
@@ -9217,7 +9225,7 @@ msgid "No category"
 msgstr "Katagori Yok"
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2238
 msgid "Display as list"
 msgstr ""
 
@@ -9225,7 +9233,7 @@ msgstr ""
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
 msgid "Display as tree"
 msgstr ""
 
@@ -9233,7 +9241,7 @@ msgstr ""
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
 msgid "Path"
 msgstr ""
 
@@ -9241,12 +9249,12 @@ msgstr ""
 msgid "No test templates matching query"
 msgstr "Sorgu ile eşleşen test şablonu bulunamadı"
 
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
 msgid "Delete test result"
 msgstr ""
 
@@ -9367,11 +9375,11 @@ msgstr ""
 msgid "Sales Order(s) must be selected before printing report"
 msgstr ""
 
-#: templates/js/translated/search.js:307
+#: templates/js/translated/search.js:352
 msgid "Minimize results"
 msgstr ""
 
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:355
 msgid "Remove results"
 msgstr ""
 
@@ -9531,204 +9539,204 @@ msgstr ""
 msgid "Confirm stock adjustment"
 msgstr "Stok ayarlamasını onayla"
 
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
 msgid "PASS"
 msgstr ""
 
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
 msgid "FAIL"
 msgstr ""
 
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
 msgid "NO RESULT"
 msgstr ""
 
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
 msgid "Pass test"
 msgstr ""
 
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
 msgid "Add test result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
 msgid "No test results found"
 msgstr ""
 
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
 msgid "Test Date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
 msgid "Edit Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
 msgid "Delete Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
 msgid "In production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
 msgid "Installed in Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
 msgid "Assigned to Sales Order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
 msgid "No stock location set"
 msgstr "Stok konumu ayarlanmadı"
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1712
 msgid "Stock item is in production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1717
 msgid "Stock item assigned to sales order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1720
 msgid "Stock item assigned to customer"
 msgstr ""
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr ""
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr ""
-
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
 msgid "Serialized stock item has been allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
 msgid "Stock item has been fully allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
 msgid "Stock item has been partially allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1730
 msgid "Stock item has been installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1734
+msgid "Stock item has expired"
+msgstr ""
+
+#: templates/js/translated/stock.js:1736
+msgid "Stock item will expire soon"
+msgstr ""
+
+#: templates/js/translated/stock.js:1743
 msgid "Stock item has been rejected"
 msgstr ""
 
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1745
 msgid "Stock item is lost"
 msgstr ""
 
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1747
 msgid "Stock item is destroyed"
 msgstr ""
 
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1751
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr ""
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1802
 msgid "Stocktake"
 msgstr ""
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1884
 msgid "Supplier part not specified"
 msgstr ""
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1922
 msgid "No stock items matching query"
 msgstr ""
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2095
 msgid "Set Stock Status"
 msgstr ""
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2109
 msgid "Select Status Code"
 msgstr ""
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2110
 msgid "Status code must be selected"
 msgstr ""
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2365
 msgid "Details"
 msgstr "Detaylar"
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2381
 msgid "Part information unavailable"
 msgstr ""
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2403
 msgid "Location no longer exists"
 msgstr "Konum artık yok"
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2422
 msgid "Purchase order no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
 msgid "Customer no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2459
 msgid "Stock item no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2482
 msgid "Added"
 msgstr ""
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2490
 msgid "Removed"
 msgstr ""
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2566
 msgid "No installed items"
 msgstr ""
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
 msgid "Uninstall Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2666
 msgid "Select stock item to uninstall"
 msgstr ""
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2687
 msgid "Install another stock item into this item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2688
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr ""
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2690
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2691
 msgid "The Stock Item is currently available in stock"
 msgstr ""
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2692
 msgid "The Stock Item is not already installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2693
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr ""
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2706
 msgid "Select part to install"
 msgstr ""
 
@@ -9960,69 +9968,81 @@ msgstr ""
 msgid "Purchasable"
 msgstr ""
 
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr "Takvim görünümünü görüntüle"
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr "Liste görünümünü görüntüle"
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
 msgid "Export Table Data"
 msgstr ""
 
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
 msgid "Select File Format"
 msgstr ""
 
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
 msgid "Loading data"
 msgstr ""
 
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
 msgid "rows per page"
 msgstr ""
 
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
 msgid "Showing all rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "Showing"
 msgstr "Gösteriliyor"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "to"
 msgstr "için"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "of"
 msgstr "yüzünden"
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "rows"
 msgstr "satırlar"
 
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
 #: templates/search.html:8 templates/search_form.html:6
 #: templates/search_form.html:7
 msgid "Search"
 msgstr "Arama"
 
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
 msgid "No matching results"
 msgstr "Sonuç bulunamadı"
 
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
 msgid "Hide/Show pagination"
 msgstr "Sayfalandırmayı Göster"
 
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
 msgid "Refresh"
 msgstr "Yenile"
 
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
 msgid "Toggle"
 msgstr "Değiştir"
 
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
 msgid "Columns"
 msgstr "Sütunlar"
 
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
 msgid "All"
 msgstr "Tümü"
 
diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po
index fcfa226098..c128491d9a 100644
--- a/InvenTree/locale/vi/LC_MESSAGES/django.po
+++ b/InvenTree/locale/vi/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
-"PO-Revision-Date: 2022-05-24 01:42\n"
+"POT-Creation-Date: 2022-05-28 23:41+0000\n"
+"PO-Revision-Date: 2022-05-29 01:47\n"
 "Last-Translator: \n"
 "Language-Team: Vietnamese\n"
 "Language: vi_VN\n"
@@ -21,7 +21,7 @@ msgstr ""
 msgid "API endpoint not found"
 msgstr ""
 
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
 msgid "Error details can be found in the admin panel"
 msgstr ""
 
@@ -30,7 +30,7 @@ msgid "Enter date"
 msgstr ""
 
 #: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
 msgid "Confirm"
 msgstr ""
 
@@ -79,7 +79,7 @@ msgstr ""
 msgid "Duplicate serial: {sn}"
 msgstr ""
 
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
 msgid "Invalid quantity provided"
 msgstr ""
 
@@ -134,10 +134,12 @@ msgid "Select file to attach"
 msgstr ""
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:139 order/models.py:1273
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr ""
 
@@ -159,7 +161,7 @@ msgstr ""
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2513
 msgid "User"
 msgstr "Người dùng"
 
@@ -205,9 +207,10 @@ msgstr ""
 #: templates/InvenTree/settings/plugin.html:132
 #: templates/InvenTree/settings/plugin_settings.html:23
 #: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2283
 msgid "Name"
 msgstr ""
 
@@ -216,22 +219,22 @@ msgstr ""
 #: company/models.py:575 company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
 #: part/templates/part/part_base.html:167
 #: part/templates/part/set_category.html:14 report/models.py:182
 #: report/models.py:547 report/models.py:586
 #: report/templates/report/inventree_build_order_base.html:118
 #: stock/templates/stock/location.html:103
 #: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
 msgid "Description"
 msgstr "Mô tả"
 
@@ -406,7 +409,7 @@ msgid "InvenTree system health checks failed"
 msgstr ""
 
 #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
 msgid "Pending"
 msgstr ""
 
@@ -414,141 +417,145 @@ msgstr ""
 msgid "Placed"
 msgstr ""
 
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
 #: order/templates/order/order_base.html:134
 #: order/templates/order/sales_order_base.html:133
 msgid "Complete"
 msgstr ""
 
 #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
 msgid "Cancelled"
 msgstr ""
 
 #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
 msgid "Lost"
 msgstr ""
 
 #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
 msgid "Returned"
 msgstr ""
 
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
 msgid "Shipped"
 msgstr ""
 
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
 msgid "OK"
 msgstr ""
 
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
 msgid "Attention needed"
 msgstr ""
 
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
 msgid "Damaged"
 msgstr ""
 
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
 msgid "Destroyed"
 msgstr ""
 
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
 msgid "Rejected"
 msgstr ""
 
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
 msgid "Legacy stock tracking entry"
 msgstr ""
 
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
 msgid "Stock item created"
 msgstr ""
 
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
 msgid "Edited stock item"
 msgstr ""
 
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
 msgid "Assigned serial number"
 msgstr ""
 
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
 msgid "Stock counted"
 msgstr ""
 
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
 msgid "Stock manually added"
 msgstr ""
 
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
 msgid "Stock manually removed"
 msgstr ""
 
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
 msgid "Location changed"
 msgstr ""
 
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
 msgid "Installed into assembly"
 msgstr ""
 
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
 msgid "Removed from assembly"
 msgstr ""
 
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
 msgid "Installed component item"
 msgstr ""
 
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
 msgid "Removed component item"
 msgstr ""
 
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
 msgid "Split from parent item"
 msgstr ""
 
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
 msgid "Merged stock items"
 msgstr ""
 
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
 msgid "Converted to variant"
 msgstr ""
 
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
 msgid "Sent to customer"
 msgstr ""
 
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
 msgid "Returned from customer"
 msgstr ""
 
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
 msgid "Build order output created"
 msgstr ""
 
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
 msgid "Build order output completed"
 msgstr ""
 
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
 msgid "Consumed by build order"
 msgstr ""
 
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
 msgid "Received against purchase order"
 msgstr ""
 
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
 msgid "Production"
 msgstr ""
 
@@ -637,15 +644,15 @@ msgstr "Tạo đơn hàng"
 msgid "Build Order Reference"
 msgstr ""
 
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
 #: part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
 msgid "Reference"
 msgstr ""
 
@@ -664,7 +671,7 @@ msgstr ""
 
 #: build/models.py:225 build/templates/build/build_base.html:77
 #: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
 #: part/models.py:2303 part/models.py:2319 part/models.py:2338
 #: part/models.py:2355 part/models.py:2457 part/models.py:2579
 #: part/models.py:2669 part/models.py:2760 part/models.py:3050
@@ -679,19 +686,21 @@ msgstr ""
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
 #: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
 msgid "Part"
 msgstr "Nguyên liệu"
 
@@ -708,7 +717,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr ""
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
 msgid "Source Location"
 msgstr ""
 
@@ -749,7 +758,7 @@ msgid "Build status code"
 msgstr ""
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr ""
 
@@ -757,12 +766,12 @@ msgstr ""
 msgid "Batch code for this build output"
 msgstr ""
 
-#: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
 msgid "Creation Date"
 msgstr ""
 
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
 msgid "Target completion date"
 msgstr ""
 
@@ -770,8 +779,8 @@ msgstr ""
 msgid "Target date for build completion. Build will be overdue after this date."
 msgstr ""
 
-#: build/models.py:300 order/models.py:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
 msgid "Completion Date"
 msgstr "Ngày hoàn thành"
 
@@ -779,7 +788,7 @@ msgstr "Ngày hoàn thành"
 msgid "completed by"
 msgstr ""
 
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
 msgid "Issued by"
 msgstr ""
 
@@ -788,11 +797,11 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
 msgid "Responsible"
 msgstr ""
 
@@ -804,14 +813,14 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr ""
 
 #: build/models.py:334 build/serializers.py:390
 #: build/templates/build/sidebar.html:21 company/models.py:134
 #: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
 #: order/templates/order/po_sidebar.html:11
 #: order/templates/order/so_sidebar.html:17 part/models.py:983
 #: part/templates/part/part_sidebar.html:59
@@ -820,11 +829,11 @@ msgstr ""
 #: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
 msgid "Notes"
 msgstr ""
 
@@ -857,7 +866,7 @@ msgstr ""
 msgid "Stock item is over-allocated"
 msgstr ""
 
-#: build/models.py:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1413
 msgid "Allocation quantity must be greater than zero"
 msgstr ""
 
@@ -869,8 +878,8 @@ msgstr ""
 msgid "Selected stock item not found in BOM"
 msgstr ""
 
-#: build/models.py:1375 stock/templates/stock/item_base.html:335
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
 #: templates/navbar.html:38
 msgid "Build"
 msgstr ""
@@ -879,18 +888,18 @@ msgstr ""
 msgid "Build to allocate parts"
 msgstr ""
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2449
 msgid "Stock Item"
 msgstr ""
 
@@ -902,10 +911,10 @@ msgstr ""
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_build_order_base.html:114
@@ -913,25 +922,24 @@ 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
 msgid "Quantity"
 msgstr ""
 
@@ -948,7 +956,7 @@ msgid "Destination stock item"
 msgstr ""
 
 #: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
 msgid "Build Output"
 msgstr ""
 
@@ -972,7 +980,7 @@ msgstr ""
 msgid "Enter quantity for build output"
 msgstr ""
 
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
 #: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
 #: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
 #: stock/serializers.py:294
@@ -987,8 +995,8 @@ msgstr ""
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr ""
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr ""
@@ -1015,15 +1023,15 @@ msgstr ""
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
 msgid "Location"
 msgstr ""
 
@@ -1032,12 +1040,12 @@ msgid "Location for completed build outputs"
 msgstr ""
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: build/templates/build/detail.html:62 order/models.py:663
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
 msgid "Status"
 msgstr "Trạng thái"
 
@@ -1118,7 +1126,7 @@ msgstr ""
 msgid "Item must be in stock"
 msgstr ""
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr ""
@@ -1135,7 +1143,7 @@ msgstr ""
 msgid "This stock item has already been allocated to this build output"
 msgstr ""
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr ""
 
@@ -1233,13 +1241,13 @@ msgid "Stock has not been fully allocated to this Build Order"
 msgstr ""
 
 #: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr ""
 
@@ -1266,14 +1274,14 @@ msgid "Completed"
 msgstr "Đã hoàn thành"
 
 #: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2436
 msgid "Sales Order"
 msgstr ""
 
@@ -1308,8 +1316,8 @@ msgstr ""
 msgid "Stock can be taken from any available location."
 msgstr ""
 
-#: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
 msgid "Destination"
 msgstr ""
 
@@ -1322,11 +1330,11 @@ msgid "Allocated Parts"
 msgstr ""
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
-#: templates/js/translated/build.js:1184
+#: stock/templates/stock/item_base.html:170
+#: templates/js/translated/build.js:1179
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1335,7 +1343,7 @@ msgstr ""
 #: build/templates/build/detail.html:126
 #: order/templates/order/order_base.html:149
 #: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
 msgid "Created"
 msgstr ""
 
@@ -1355,7 +1363,7 @@ msgstr ""
 msgid "Allocate Stock to Build"
 msgstr ""
 
-#: build/templates/build/detail.html:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
 msgid "Unallocate stock"
 msgstr ""
 
@@ -1385,8 +1393,8 @@ msgstr ""
 
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: company/templates/company/detail.html:85
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr ""
 
@@ -1461,8 +1469,8 @@ msgid "Completed Build Outputs"
 msgstr ""
 
 #: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
 #: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:82
 #: order/templates/order/sales_order_detail.html:129
@@ -1476,11 +1484,11 @@ msgstr ""
 msgid "Build Notes"
 msgstr ""
 
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
 msgid "Allocation Complete"
 msgstr ""
 
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
@@ -1492,18 +1500,6 @@ msgstr ""
 msgid "Print Build Orders"
 msgstr ""
 
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr ""
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr ""
-
 #: build/templates/build/sidebar.html:5
 msgid "Build Order Details"
 msgstr ""
@@ -1727,7 +1723,7 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
 #: templates/js/translated/table_filters.js:168
 #: templates/js/translated/table_filters.js:460
 msgid "Assembly"
@@ -2413,7 +2409,7 @@ msgid "Price break quantity"
 msgstr ""
 
 #: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: company/templates/company/supplier_part.html:263 order/models.py:975
 #: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
 msgid "Price"
 msgstr ""
@@ -2556,7 +2552,7 @@ msgstr ""
 
 #: company/models.py:104 company/templates/company/company_base.html:100
 #: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
 msgid "Website"
 msgstr ""
 
@@ -2651,10 +2647,11 @@ msgstr ""
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: stock/templates/stock/item_base.html:212
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
 #: templates/js/translated/table_filters.js:411
 msgid "Manufacturer"
 msgstr "Nhà sản xuất"
@@ -2665,8 +2662,10 @@ msgstr ""
 
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr ""
@@ -2686,7 +2685,7 @@ msgstr ""
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr ""
 
@@ -2696,8 +2695,9 @@ msgstr ""
 
 #: company/models.py:427
 #: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
 msgid "Value"
 msgstr ""
 
@@ -2708,7 +2708,7 @@ msgstr ""
 #: company/models.py:434 part/models.py:940 part/models.py:2549
 #: part/templates/part/part_base.html:280
 #: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
 msgid "Units"
 msgstr ""
 
@@ -2721,11 +2721,12 @@ msgid "Linked manufacturer part must reference the same base part"
 msgstr ""
 
 #: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: stock/templates/stock/item_base.html:229
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2736,8 +2737,9 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
 msgid "SKU"
 msgstr ""
 
@@ -2773,8 +2775,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr ""
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
 msgid "Packaging"
 msgstr ""
 
@@ -2804,12 +2806,12 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
 msgid "Company"
 msgstr ""
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr ""
 
@@ -2822,7 +2824,7 @@ msgid "Edit company information"
 msgstr ""
 
 #: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
 msgid "Edit Company"
 msgstr ""
 
@@ -2845,12 +2847,12 @@ msgstr ""
 msgid "Download image from URL"
 msgstr ""
 
-#: company/templates/company/company_base.html:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr ""
@@ -2869,7 +2871,7 @@ msgid "Upload Image"
 msgstr ""
 
 #: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
+#: company/templates/company/manufacturer_part_sidebar.html:7
 #: templates/InvenTree/search.html:118
 msgid "Supplier Parts"
 msgstr ""
@@ -2884,28 +2886,19 @@ msgstr ""
 msgid "New Supplier Part"
 msgstr ""
 
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr ""
-
 #: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
 #: part/templates/part/category.html:176
 msgid "Order parts"
 msgstr ""
 
 #: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
 msgid "Delete parts"
 msgstr ""
 
 #: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
 msgid "Delete Parts"
 msgstr ""
 
@@ -2917,88 +2910,76 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
 msgid "New Manufacturer Part"
 msgstr ""
 
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
 msgid "Supplier Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
 #: company/templates/company/sidebar.html:12
 #: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
 #: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:235 templates/navbar.html:50
 #: users/models.py:43
 msgid "Purchase Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
 #: order/templates/order/purchase_orders.html:17
 msgid "Create new purchase order"
 msgstr ""
 
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr ""
 
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
 #: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
 #: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
 #: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:259 templates/navbar.html:61
 #: users/models.py:44
 msgid "Sales Orders"
 msgstr ""
 
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
 #: order/templates/order/sales_orders.html:20
 msgid "Create new sales order"
 msgstr ""
 
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
 #: order/templates/order/sales_orders.html:21
 msgid "New Sales Order"
 msgstr ""
 
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
 msgid "Assigned Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
 msgid "Company Notes"
 msgstr ""
 
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr ""
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr ""
-
 #: company/templates/company/index.html:8
 msgid "Supplier List"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
 #: templates/navbar.html:49
 msgid "Manufacturers"
 msgstr ""
@@ -3011,12 +2992,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -3032,55 +3013,46 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:119
 #: company/templates/company/supplier_part.html:15 company/views.py:41
 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
 msgid "Suppliers"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
 #: part/templates/part/detail.html:363
 msgid "Delete supplier parts"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
 msgid "Delete"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:164
+#: company/templates/company/manufacturer_part.html:166
 #: company/templates/company/manufacturer_part_sidebar.html:5
 #: part/templates/part/category_sidebar.html:19
 #: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8
 msgid "Parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
 #: part/templates/part/detail.html:184
 #: templates/InvenTree/settings/category.html:12
 #: templates/InvenTree/settings/part.html:66
 msgid "New Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
 msgid "Delete parameters"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
 msgid "Add Parameter"
 msgstr ""
 
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr ""
-
 #: company/templates/company/sidebar.html:6
 msgid "Manufactured Parts"
 msgstr ""
@@ -3099,19 +3071,19 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
 msgid "Delete supplier part"
 msgstr ""
 
@@ -3186,11 +3158,11 @@ msgstr ""
 #: part/templates/part/part_sidebar.html:14
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
 #: templates/InvenTree/settings/sidebar.html:43
 #: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
 #: templates/navbar.html:31
 msgid "Stock"
 msgstr "Kiện hàng"
@@ -3216,8 +3188,8 @@ msgstr ""
 #: stock/templates/stock/location.html:161
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
+#: templates/js/translated/stock.js:2307 users/models.py:41
 msgid "Stock Items"
 msgstr ""
 
@@ -3229,7 +3201,7 @@ msgstr ""
 msgid "New Manufacturer"
 msgstr ""
 
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
 #: templates/navbar.html:60
 msgid "Customers"
 msgstr ""
@@ -3238,7 +3210,7 @@ msgstr ""
 msgid "New Customer"
 msgstr ""
 
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:212
 msgid "Companies"
 msgstr ""
 
@@ -3328,305 +3300,313 @@ msgstr ""
 msgid "Part query filters (comma-separated value of key=value pairs)"
 msgstr ""
 
-#: order/models.py:130
+#: order/models.py:137
 msgid "Order description"
 msgstr ""
 
-#: order/models.py:132
+#: order/models.py:139 order/models.py:1274
 msgid "Link to external page"
 msgstr ""
 
-#: order/models.py:140
+#: order/models.py:147
 msgid "Created By"
 msgstr ""
 
-#: order/models.py:147
+#: order/models.py:154
 msgid "User or group responsible for this order"
 msgstr ""
 
-#: order/models.py:152
+#: order/models.py:159
 msgid "Order notes"
 msgstr ""
 
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
 msgid "Order reference"
 msgstr ""
 
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
 msgid "Purchase order status"
 msgstr ""
 
-#: order/models.py:253
+#: order/models.py:311
 msgid "Company from which the items are being ordered"
 msgstr ""
 
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
 msgid "Supplier Reference"
 msgstr ""
 
-#: order/models.py:256
+#: order/models.py:314
 msgid "Supplier order reference code"
 msgstr ""
 
-#: order/models.py:263
+#: order/models.py:321
 msgid "received by"
 msgstr ""
 
-#: order/models.py:268
+#: order/models.py:326
 msgid "Issue Date"
 msgstr ""
 
-#: order/models.py:269
+#: order/models.py:327
 msgid "Date order was issued"
 msgstr ""
 
-#: order/models.py:274
+#: order/models.py:332
 msgid "Target Delivery Date"
 msgstr ""
 
-#: order/models.py:275
+#: order/models.py:333
 msgid "Expected date for order delivery. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:281
+#: order/models.py:339
 msgid "Date order was completed"
 msgstr ""
 
-#: order/models.py:310
+#: order/models.py:368
 msgid "Part supplier must match PO supplier"
 msgstr ""
 
-#: order/models.py:456
+#: order/models.py:514
 msgid "Quantity must be a positive number"
 msgstr ""
 
-#: order/models.py:601
+#: order/models.py:659
 msgid "Company to which the items are being sold"
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer Reference "
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer order reference code"
 msgstr ""
 
-#: order/models.py:612
+#: order/models.py:670
 msgid "Target date for order completion. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
 msgid "Shipment Date"
 msgstr ""
 
-#: order/models.py:622
+#: order/models.py:680
 msgid "shipped by"
 msgstr ""
 
-#: order/models.py:688
+#: order/models.py:746
 msgid "Order cannot be completed as no parts have been assigned"
 msgstr ""
 
-#: order/models.py:692
+#: order/models.py:750
 msgid "Only a pending order can be marked as complete"
 msgstr ""
 
-#: order/models.py:695
+#: order/models.py:753
 msgid "Order cannot be completed as there are incomplete shipments"
 msgstr ""
 
-#: order/models.py:698
+#: order/models.py:756
 msgid "Order cannot be completed as there are incomplete line items"
 msgstr ""
 
-#: order/models.py:878
+#: order/models.py:936
 msgid "Item quantity"
 msgstr ""
 
-#: order/models.py:884
+#: order/models.py:942
 msgid "Line item reference"
 msgstr ""
 
-#: order/models.py:886
+#: order/models.py:944
 msgid "Line item notes"
 msgstr ""
 
-#: order/models.py:891
+#: order/models.py:949
 msgid "Target shipping date for this line item"
 msgstr ""
 
-#: order/models.py:909
+#: order/models.py:967
 msgid "Context"
 msgstr ""
 
-#: order/models.py:910
+#: order/models.py:968
 msgid "Additional context for this line"
 msgstr ""
 
-#: order/models.py:918
+#: order/models.py:976
 msgid "Unit price"
 msgstr ""
 
-#: order/models.py:951
+#: order/models.py:1009
 msgid "Supplier part must match supplier"
 msgstr ""
 
-#: order/models.py:958
+#: order/models.py:1016
 msgid "deleted"
 msgstr ""
 
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
 msgid "Order"
 msgstr ""
 
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
 msgid "Purchase Order"
 msgstr "Đơn hàng"
 
-#: order/models.py:984
+#: order/models.py:1042
 msgid "Supplier part"
 msgstr ""
 
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
 msgstr ""
 
-#: order/models.py:992
+#: order/models.py:1050
 msgid "Number of items received"
 msgstr ""
 
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1900
 msgid "Purchase Price"
 msgstr "Giá mua"
 
-#: order/models.py:1000
+#: order/models.py:1058
 msgid "Unit purchase price"
 msgstr ""
 
-#: order/models.py:1008
+#: order/models.py:1066
 msgid "Where does the Purchaser want this item to be stored?"
 msgstr ""
 
-#: order/models.py:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
 #: part/templates/part/prices.html:119 part/templates/part/prices.html:288
 msgid "Sale Price"
 msgstr ""
 
-#: order/models.py:1079
+#: order/models.py:1137
 msgid "Unit sale price"
 msgstr ""
 
-#: order/models.py:1084
+#: order/models.py:1142
 msgid "Shipped quantity"
 msgstr ""
 
-#: order/models.py:1171
+#: order/models.py:1229
 msgid "Date of shipment"
 msgstr ""
 
-#: order/models.py:1178
+#: order/models.py:1236
 msgid "Checked By"
 msgstr ""
 
-#: order/models.py:1179
+#: order/models.py:1237
 msgid "User who checked this shipment"
 msgstr ""
 
-#: order/models.py:1187
+#: order/models.py:1245
 msgid "Shipment number"
 msgstr ""
 
-#: order/models.py:1194
+#: order/models.py:1252
 msgid "Shipment notes"
 msgstr ""
 
-#: order/models.py:1201
+#: order/models.py:1259
 msgid "Tracking Number"
 msgstr ""
 
-#: order/models.py:1202
+#: order/models.py:1260
 msgid "Shipment tracking information"
 msgstr ""
 
-#: order/models.py:1213
+#: order/models.py:1267
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1268
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1285
 msgid "Shipment has already been sent"
 msgstr ""
 
-#: order/models.py:1216
+#: order/models.py:1288
 msgid "Shipment has no allocated stock items"
 msgstr ""
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1395 order/models.py:1397
 msgid "Stock item has not been assigned"
 msgstr ""
 
-#: order/models.py:1317
+#: order/models.py:1401
 msgid "Cannot allocate stock item to a line with a different part"
 msgstr ""
 
-#: order/models.py:1319
+#: order/models.py:1403
 msgid "Cannot allocate stock to a line without a part"
 msgstr ""
 
-#: order/models.py:1322
+#: order/models.py:1406
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr ""
 
-#: order/models.py:1326
+#: order/models.py:1410
 msgid "StockItem is over-allocated"
 msgstr ""
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1416 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr ""
 
-#: order/models.py:1335
+#: order/models.py:1419
 msgid "Sales order does not match shipment"
 msgstr ""
 
-#: order/models.py:1336
+#: order/models.py:1420
 msgid "Shipment does not match sales order"
 msgstr ""
 
-#: order/models.py:1344
+#: order/models.py:1428
 msgid "Line"
 msgstr ""
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr ""
 
-#: order/models.py:1353
+#: order/models.py:1437
 msgid "Sales order shipment reference"
 msgstr ""
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr ""
 
-#: order/models.py:1366
+#: order/models.py:1450
 msgid "Select stock item to allocate"
 msgstr ""
 
-#: order/models.py:1369
+#: order/models.py:1453
 msgid "Enter stock allocation quantity"
 msgstr ""
 
@@ -3662,7 +3642,7 @@ msgstr ""
 msgid "Purchase order must match supplier"
 msgstr ""
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr ""
 
@@ -3674,11 +3654,11 @@ msgstr ""
 msgid "Select destination location for received items"
 msgstr ""
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr ""
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr ""
 
@@ -3714,35 +3694,35 @@ msgstr ""
 msgid "Sale price currency"
 msgstr ""
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr ""
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr ""
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr ""
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr ""
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr ""
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr ""
 
@@ -3832,7 +3812,12 @@ msgstr ""
 msgid "Total cost"
 msgstr ""
 
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
 msgid "Edit Purchase Order"
 msgstr ""
 
@@ -3863,9 +3848,9 @@ msgstr ""
 #: part/templates/part/import_wizard/ajax_match_references.html:42
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3929,7 +3914,7 @@ msgstr ""
 msgid "Order Notes"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
 msgid "Add Order Line"
 msgstr ""
 
@@ -3947,12 +3932,12 @@ msgid "Print packing list"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
 msgid "Complete Sales Order"
 msgstr ""
 
@@ -3961,7 +3946,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2471
 msgid "Customer Reference"
 msgstr ""
 
@@ -3971,7 +3956,7 @@ msgstr ""
 msgid "Completed Shipments"
 msgstr ""
 
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
 msgid "Edit Sales Order"
 msgstr ""
 
@@ -3985,7 +3970,7 @@ msgid "Pending Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
 msgid "Actions"
 msgstr ""
 
@@ -4113,7 +4098,7 @@ msgid "Part Category"
 msgstr ""
 
 #: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
 #: users/models.py:38
 msgid "Part Categories"
 msgstr ""
@@ -4124,7 +4109,7 @@ msgstr ""
 #: part/templates/part/category_sidebar.html:9
 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
 #: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
 #: templates/navbar.html:24 users/models.py:39
 msgid "Parts"
 msgstr "Nguyên liệu"
@@ -4202,7 +4187,7 @@ msgstr ""
 
 #: part/models.py:842 part/templates/part/part_base.html:266
 #: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
 msgid "IPN"
 msgstr ""
 
@@ -4316,7 +4301,7 @@ msgid "Test with this name already exists for this part"
 msgstr ""
 
 #: part/models.py:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
 msgid "Test Name"
 msgstr ""
 
@@ -4448,7 +4433,7 @@ msgid "BOM quantity for this BOM item"
 msgstr ""
 
 #: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
 #: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
@@ -4482,7 +4467,7 @@ msgid "BOM line checksum"
 msgstr ""
 
 #: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
 #: templates/js/translated/table_filters.js:68
 #: templates/js/translated/table_filters.js:88
 msgid "Inherited"
@@ -4493,7 +4478,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
 #: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
 msgid "Allow Variants"
 msgstr ""
 
@@ -4714,6 +4699,11 @@ msgstr ""
 msgid "New Part"
 msgstr ""
 
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr ""
+
 #: part/templates/part/category.html:172
 msgid "Set category"
 msgstr ""
@@ -4902,46 +4892,46 @@ msgstr ""
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
 msgid "Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
 msgid "Add Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
@@ -5084,8 +5074,8 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
 #: templates/js/translated/model_renderers.js:192
 #: templates/js/translated/part.js:581 templates/js/translated/part.js:658
 msgid "Inactive"
@@ -5101,20 +5091,22 @@ msgstr ""
 msgid "This part is a variant of %(link)s"
 msgstr ""
 
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr ""
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr ""
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
 msgid "Can Build"
 msgstr ""
 
@@ -5133,7 +5125,7 @@ msgid "Latest Serial Number"
 msgstr "Số seri mới nhất"
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr ""
 
@@ -5172,7 +5164,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -5291,7 +5283,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
 msgid "Supplier Cost"
 msgstr ""
 
@@ -5530,7 +5522,7 @@ msgstr ""
 msgid "Barcode associated with Stock Item"
 msgstr ""
 
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
 msgid "Label printing failed"
 msgstr ""
 
@@ -5770,12 +5762,12 @@ msgid "Stock Item Test Report"
 msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr ""
 
@@ -5796,7 +5788,7 @@ msgstr ""
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
 msgid "Date"
 msgstr ""
 
@@ -5815,7 +5807,7 @@ msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2589
 msgid "Serial"
 msgstr ""
 
@@ -5832,7 +5824,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr ""
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr ""
 
@@ -5894,7 +5886,7 @@ msgstr ""
 msgid "Packaging this stock item is stored in"
 msgstr ""
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr ""
 
@@ -5934,8 +5926,8 @@ msgstr ""
 msgid "Destination Sales Order"
 msgstr ""
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1816
 msgid "Expiry Date"
 msgstr ""
 
@@ -6215,11 +6207,11 @@ msgstr ""
 msgid "Installed Stock Items"
 msgstr ""
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
 msgid "Install Stock Item"
 msgstr ""
 
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
 msgid "Add Test Result"
 msgstr ""
 
@@ -6311,110 +6303,114 @@ msgstr ""
 msgid "Delete stock item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:244
-msgid "This stock item has not passed all required tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:252
-msgid "This stock item is allocated to Sales Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr ""
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:284
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:292
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1693
+msgid "No location set"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1832
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr ""
 
@@ -6486,8 +6482,8 @@ msgstr ""
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:198 users/models.py:40
 msgid "Stock Locations"
 msgstr ""
 
@@ -6539,7 +6535,7 @@ msgstr ""
 msgid "Child Items"
 msgstr ""
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr ""
 
@@ -6564,55 +6560,55 @@ msgstr ""
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr ""
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr ""
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr ""
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr ""
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr ""
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr ""
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr ""
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr ""
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr ""
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr ""
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr ""
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr ""
 
@@ -7331,9 +7327,9 @@ msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr ""
@@ -7602,14 +7598,14 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
 #: templates/js/translated/part.js:530
 #: templates/js/translated/table_filters.js:178
 msgid "Available"
@@ -7644,67 +7640,67 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
-#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
 msgid "No Response"
 msgstr ""
 
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
 msgid "No response from the InvenTree server"
 msgstr ""
 
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
 msgid "Error 400: Bad request"
 msgstr ""
 
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
 msgid "API request returned error code 400"
 msgstr ""
 
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
 msgid "Error 401: Not Authenticated"
 msgstr ""
 
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
 msgid "Authentication credentials not supplied"
 msgstr ""
 
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
 msgid "Error 403: Permission Denied"
 msgstr ""
 
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
 msgid "You do not have the required permissions to access this function"
 msgstr ""
 
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
 msgid "Error 404: Resource Not Found"
 msgstr ""
 
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
 msgid "The requested resource could not be located on the server"
 msgstr ""
 
-#: templates/js/translated/api.js:217
+#: templates/js/translated/api.js:262
 msgid "Error 405: Method Not Allowed"
 msgstr ""
 
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
 msgid "HTTP method not allowed at URL"
 msgstr ""
 
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
 msgid "Error 408: Timeout"
 msgstr ""
 
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
 msgid "Connection timeout while requesting data from server"
 msgstr ""
 
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
 msgid "Unhandled Error Code"
 msgstr ""
 
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
 msgid "Error code"
 msgstr ""
 
@@ -7765,7 +7761,7 @@ msgid "Unknown response from server"
 msgstr ""
 
 #: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "Invalid server response"
 msgstr ""
 
@@ -7847,12 +7843,12 @@ msgid "Download BOM Template"
 msgstr ""
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
 msgid "Format"
 msgstr ""
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr ""
 
@@ -7932,84 +7928,84 @@ msgstr ""
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
 msgid "Load BOM for subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
 msgid "No Stock Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
 msgid "Includes variant and substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
 #: templates/js/translated/part.js:690
 msgid "Includes variant stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
 msgid "Includes substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -8131,262 +8127,270 @@ msgstr ""
 msgid "Location not specified"
 msgstr ""
 
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
 msgid "No active build outputs found"
 msgstr ""
 
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
 msgid "Allocated Stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
 msgid "No tracked BOM items for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
 msgid "Completed Tests"
 msgstr ""
 
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
 msgid "No required tests for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
 msgid "Edit stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
 msgid "Delete stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
 msgid "Edit Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
 msgid "Remove Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
 msgid "Substitute parts available"
 msgstr ""
 
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
 msgid "Quantity Per"
 msgstr ""
 
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
 msgid "Insufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
 msgid "Sufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
 msgid "Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
 msgid "Build stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
 msgid "Order stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
 msgid "Allocate stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr ""
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
 msgid "You must select at least one part to allocate"
 msgstr ""
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
 msgid "All Parts Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
 msgid "All selected parts have been fully allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
 msgid "Select source location (leave blank to take from all locations)"
 msgstr ""
 
-#: templates/js/translated/build.js:2117
+#: templates/js/translated/build.js:2100
 msgid "Allocate Stock Items to Build Order"
 msgstr ""
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
 msgid "No matching stock locations"
 msgstr ""
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
 msgid "No matching stock items"
 msgstr ""
 
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
 msgid "Automatic Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
 msgstr ""
 
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
 msgid "If a location is specifed, stock will only be allocated from that location"
 msgstr ""
 
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
 msgstr ""
 
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
 msgstr ""
 
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
 msgid "Allocate Stock Items"
 msgstr ""
 
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
 msgid "Select"
 msgstr ""
 
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
 msgid "Build order is overdue"
 msgstr ""
 
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
 msgid "Progress"
 msgstr ""
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
 msgid "No information"
 msgstr ""
 
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
 msgid "No parts allocated for"
 msgstr ""
 
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
 msgid "Add Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
 msgid "Edit Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:342
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr ""
+
+#: templates/js/translated/company.js:595
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
 #: templates/js/translated/part.js:650
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
 #: templates/js/translated/part.js:654
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
 msgid "No supplier parts found"
 msgstr ""
 
@@ -8424,61 +8428,61 @@ msgstr ""
 msgid "Create filter"
 msgstr ""
 
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
 msgid "Action Prohibited"
 msgstr ""
 
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
 msgid "Create operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
 msgid "Update operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
 msgid "Delete operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
 msgid "View operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
 msgid "Keep this form open"
 msgstr ""
 
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
 msgid "Enter a valid number"
 msgstr ""
 
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
 #: templates/modals.html:43
 msgid "Form errors exist"
 msgstr ""
 
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
 msgid "No results found"
 msgstr ""
 
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
 msgid "Searching"
 msgstr ""
 
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
 msgid "Clear input"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "File Column"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "Field Name"
 msgstr ""
 
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
 msgid "Select Columns"
 msgstr ""
 
@@ -8552,62 +8556,62 @@ msgstr ""
 msgid "Select Label Template"
 msgstr ""
 
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
 msgid "Cancel"
 msgstr ""
 
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
 #: templates/modals.html:28 templates/modals.html:51
 msgid "Submit"
 msgstr ""
 
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
 msgid "Form Title"
 msgstr ""
 
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
 msgid "Waiting for server..."
 msgstr ""
 
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
 msgid "Show Error Information"
 msgstr ""
 
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
 msgid "Accept"
 msgstr ""
 
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
 msgid "Loading Data"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Invalid response from server"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Form data missing from server response"
 msgstr ""
 
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
 msgid "Error posting form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "JSON response missing form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
 msgid "Error 400: Bad Request"
 msgstr ""
 
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
 msgid "Server returned error code 400"
 msgstr ""
 
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
 msgid "Error requesting form data"
 msgstr ""
 
@@ -8665,377 +8669,381 @@ msgstr ""
 msgid "Notifications will load here"
 msgstr ""
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
 msgstr ""
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
 msgstr ""
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr ""
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr ""
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr ""
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr ""
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr ""
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr ""
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr ""
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr ""
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr ""
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr ""
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr ""
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
 msgid "Stock Status"
 msgstr ""
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr ""
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr ""
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr ""
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
 msgid "Order is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
 msgid "Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
 msgid "Duplicate Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
 msgid "Edit Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
 msgid "Delete Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1856
 msgid "No line items found"
 msgstr ""
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
 msgid "Total"
 msgstr ""
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
 msgid "Total Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
 msgid "Duplicate line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
 msgid "Edit line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
 msgid "Delete line item"
 msgstr ""
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
 msgid "Duplicate line"
 msgstr ""
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
 msgid "Edit line"
 msgstr ""
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
 msgid "Delete line"
 msgstr ""
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
 msgid "Duplicate Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
 msgid "Edit Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
 msgid "Delete Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2279
 msgid "No matching line"
 msgstr ""
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2392
 msgid "No sales orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2462
 msgid "Invalid Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2549
 msgid "Edit shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2552
 msgid "Complete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2557
 msgid "Delete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2577
 msgid "Edit Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2594
 msgid "Delete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2628
 msgid "No matching shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2638
 msgid "Shipment Reference"
 msgstr ""
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2662
 msgid "Not shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2668
 msgid "Tracking"
 msgstr ""
 
-#: templates/js/translated/order.js:2603
+#: templates/js/translated/order.js:2672
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:2841
 msgid "Add Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2892
 msgid "Confirm stock allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2893
 msgid "Allocate Stock Items to Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:3101
 msgid "No sales order allocations found"
 msgstr ""
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:3182
 msgid "Edit Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:3199
 msgid "Confirm Delete Operation"
 msgstr ""
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:3200
 msgid "Delete Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
 msgid "Shipped to customer"
 msgstr ""
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
 msgid "Stock location not specified"
 msgstr ""
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3623
 msgid "Allocate serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3629
 msgid "Purchase stock"
 msgstr ""
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
 msgid "Calculate price"
 msgstr ""
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3648
 msgid "Cannot be deleted as items have been shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3651
 msgid "Cannot be deleted as items have been allocated"
 msgstr ""
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3733
 msgid "Allocate Serial Numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3842
 msgid "Update Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3856
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:4092
 msgid "No matching lines"
 msgstr ""
 
@@ -9217,7 +9225,7 @@ msgid "No category"
 msgstr ""
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2238
 msgid "Display as list"
 msgstr ""
 
@@ -9225,7 +9233,7 @@ msgstr ""
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
 msgid "Display as tree"
 msgstr ""
 
@@ -9233,7 +9241,7 @@ msgstr ""
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
 msgid "Path"
 msgstr ""
 
@@ -9241,12 +9249,12 @@ msgstr ""
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
 msgid "Delete test result"
 msgstr ""
 
@@ -9367,11 +9375,11 @@ msgstr ""
 msgid "Sales Order(s) must be selected before printing report"
 msgstr ""
 
-#: templates/js/translated/search.js:307
+#: templates/js/translated/search.js:352
 msgid "Minimize results"
 msgstr ""
 
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:355
 msgid "Remove results"
 msgstr ""
 
@@ -9531,204 +9539,204 @@ msgstr ""
 msgid "Confirm stock adjustment"
 msgstr ""
 
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
 msgid "PASS"
 msgstr ""
 
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
 msgid "FAIL"
 msgstr ""
 
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
 msgid "NO RESULT"
 msgstr ""
 
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
 msgid "Pass test"
 msgstr ""
 
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
 msgid "Add test result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
 msgid "No test results found"
 msgstr ""
 
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
 msgid "Test Date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
 msgid "Edit Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
 msgid "Delete Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
 msgid "In production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
 msgid "Installed in Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
 msgid "Assigned to Sales Order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
 msgid "No stock location set"
 msgstr ""
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1712
 msgid "Stock item is in production"
 msgstr ""
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1717
 msgid "Stock item assigned to sales order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1720
 msgid "Stock item assigned to customer"
 msgstr ""
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr ""
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr ""
-
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
 msgid "Serialized stock item has been allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
 msgid "Stock item has been fully allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
 msgid "Stock item has been partially allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1730
 msgid "Stock item has been installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1734
+msgid "Stock item has expired"
+msgstr ""
+
+#: templates/js/translated/stock.js:1736
+msgid "Stock item will expire soon"
+msgstr ""
+
+#: templates/js/translated/stock.js:1743
 msgid "Stock item has been rejected"
 msgstr ""
 
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1745
 msgid "Stock item is lost"
 msgstr ""
 
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1747
 msgid "Stock item is destroyed"
 msgstr ""
 
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1751
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr ""
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1802
 msgid "Stocktake"
 msgstr ""
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1884
 msgid "Supplier part not specified"
 msgstr ""
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1922
 msgid "No stock items matching query"
 msgstr ""
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2095
 msgid "Set Stock Status"
 msgstr ""
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2109
 msgid "Select Status Code"
 msgstr ""
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2110
 msgid "Status code must be selected"
 msgstr ""
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2365
 msgid "Details"
 msgstr ""
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2381
 msgid "Part information unavailable"
 msgstr ""
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2403
 msgid "Location no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2422
 msgid "Purchase order no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
 msgid "Customer no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2459
 msgid "Stock item no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2482
 msgid "Added"
 msgstr ""
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2490
 msgid "Removed"
 msgstr ""
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2566
 msgid "No installed items"
 msgstr ""
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
 msgid "Uninstall Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2666
 msgid "Select stock item to uninstall"
 msgstr ""
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2687
 msgid "Install another stock item into this item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2688
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr ""
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2690
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2691
 msgid "The Stock Item is currently available in stock"
 msgstr ""
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2692
 msgid "The Stock Item is not already installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2693
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr ""
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2706
 msgid "Select part to install"
 msgstr ""
 
@@ -9960,69 +9968,81 @@ msgstr ""
 msgid "Purchasable"
 msgstr ""
 
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr ""
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr ""
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
 msgid "Export Table Data"
 msgstr ""
 
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
 msgid "Select File Format"
 msgstr ""
 
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
 msgid "Loading data"
 msgstr ""
 
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
 msgid "rows per page"
 msgstr ""
 
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
 msgid "Showing all rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "Showing"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "to"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "of"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
 #: templates/search.html:8 templates/search_form.html:6
 #: templates/search_form.html:7
 msgid "Search"
 msgstr ""
 
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
 msgid "No matching results"
 msgstr ""
 
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
 msgid "Hide/Show pagination"
 msgstr ""
 
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
 msgid "Refresh"
 msgstr ""
 
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
 msgid "Toggle"
 msgstr ""
 
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
 msgid "Columns"
 msgstr ""
 
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
 msgid "All"
 msgstr ""
 
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index bbebdd8700..f42e038688 100644
--- a/InvenTree/locale/zh/LC_MESSAGES/django.po
+++ b/InvenTree/locale/zh/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-23 23:24+0000\n"
-"PO-Revision-Date: 2022-05-24 01:42\n"
+"POT-Creation-Date: 2022-05-28 23:41+0000\n"
+"PO-Revision-Date: 2022-05-29 01:47\n"
 "Last-Translator: \n"
 "Language-Team: Chinese Simplified\n"
 "Language: zh_CN\n"
@@ -21,7 +21,7 @@ msgstr ""
 msgid "API endpoint not found"
 msgstr "未找到 API 端点"
 
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
 msgid "Error details can be found in the admin panel"
 msgstr ""
 
@@ -30,7 +30,7 @@ msgid "Enter date"
 msgstr "输入日期"
 
 #: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
 msgid "Confirm"
 msgstr "确认"
 
@@ -79,7 +79,7 @@ msgstr "您必须输入相同的 Email 。"
 msgid "Duplicate serial: {sn}"
 msgstr ""
 
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
 msgid "Invalid quantity provided"
 msgstr "提供的数量无效"
 
@@ -134,10 +134,12 @@ msgid "Select file to attach"
 msgstr "选择附件"
 
 #: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 part/models.py:855
+#: company/models.py:569 order/models.py:139 order/models.py:1273
+#: part/models.py:855
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1441
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
+#: templates/js/translated/part.js:1441
 msgid "Link"
 msgstr "链接"
 
@@ -159,7 +161,7 @@ msgstr "文件注释"
 #: common/models.py:2030 common/models.py:2031 part/models.py:2357
 #: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
 #: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:2513
 msgid "User"
 msgstr "用户"
 
@@ -205,9 +207,10 @@ msgstr "选择无效"
 #: templates/InvenTree/settings/plugin.html:132
 #: templates/InvenTree/settings/plugin_settings.html:23
 #: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
 #: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2288
+#: templates/js/translated/stock.js:2283
 msgid "Name"
 msgstr "名称"
 
@@ -216,22 +219,22 @@ msgstr "名称"
 #: company/models.py:575 company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
 #: part/templates/part/part_base.html:167
 #: part/templates/part/set_category.html:14 report/models.py:182
 #: report/models.py:547 report/models.py:586
 #: report/templates/report/inventree_build_order_base.html:118
 #: stock/templates/stock/location.html:103
 #: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1562
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2254
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
 #: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
 #: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2300 templates/js/translated/stock.js:2355
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
 msgid "Description"
 msgstr "描述信息"
 
@@ -406,7 +409,7 @@ msgid "InvenTree system health checks failed"
 msgstr "InventTree系统健康检查失败"
 
 #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
 msgid "Pending"
 msgstr "待定"
 
@@ -414,141 +417,145 @@ msgstr "待定"
 msgid "Placed"
 msgstr "已添加"
 
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
 #: order/templates/order/order_base.html:134
 #: order/templates/order/sales_order_base.html:133
 msgid "Complete"
 msgstr "完成"
 
 #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
 msgid "Cancelled"
 msgstr "已取消"
 
 #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
 msgid "Lost"
 msgstr "丢失"
 
 #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
 msgid "Returned"
 msgstr "已退回"
 
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3026 templates/js/translated/order.js:3343
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
 msgid "Shipped"
 msgstr "已发货"
 
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
 msgid "OK"
 msgstr ""
 
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
 msgid "Attention needed"
 msgstr "需要关注"
 
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
 msgid "Damaged"
 msgstr "破损"
 
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
 msgid "Destroyed"
 msgstr "已销毁"
 
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
 msgid "Rejected"
 msgstr ""
 
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
 msgid "Legacy stock tracking entry"
 msgstr "旧库存跟踪条目"
 
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
 msgid "Stock item created"
 msgstr "库存项已创建"
 
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
 msgid "Edited stock item"
 msgstr "已编辑库存项"
 
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
 msgid "Assigned serial number"
 msgstr "已分配序列号"
 
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
 msgid "Stock counted"
 msgstr "库存计数"
 
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
 msgid "Stock manually added"
 msgstr "已手动添加库存"
 
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
 msgid "Stock manually removed"
 msgstr "库存手动删除"
 
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
 msgid "Location changed"
 msgstr "仓储地点已更改"
 
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
 msgid "Installed into assembly"
 msgstr "安装到组装中"
 
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
 msgid "Removed from assembly"
 msgstr "已从组装中删除"
 
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
 msgid "Installed component item"
 msgstr "已安装组件项"
 
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
 msgid "Removed component item"
 msgstr "已删除组件项"
 
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
 msgid "Split from parent item"
 msgstr "从父项拆分"
 
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
 msgid "Split child item"
 msgstr "拆分子项"
 
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2026
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
 msgid "Merged stock items"
 msgstr ""
 
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
 msgid "Converted to variant"
 msgstr ""
 
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
 msgid "Sent to customer"
 msgstr "发送给客户"
 
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
 msgid "Returned from customer"
 msgstr "从客户退货"
 
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
 msgid "Build order output created"
 msgstr "已创建生产订单输出"
 
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
 msgid "Build order output completed"
 msgstr "生产订单输出已完成"
 
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
 msgid "Consumed by build order"
 msgstr ""
 
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
 msgid "Received against purchase order"
 msgstr "收到定购单"
 
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
 msgid "Production"
 msgstr "生产中"
 
@@ -637,15 +644,15 @@ msgstr "生产订单"
 msgid "Build Order Reference"
 msgstr "相关生产订单"
 
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
 #: part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1801
-#: templates/js/translated/order.js:2002 templates/js/translated/order.js:3210
-#: templates/js/translated/order.js:3695
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
 msgid "Reference"
 msgstr "引用"
 
@@ -664,7 +671,7 @@ msgstr "此次生产匹配的订单"
 
 #: build/models.py:225 build/templates/build/build_base.html:77
 #: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
 #: part/models.py:2303 part/models.py:2319 part/models.py:2338
 #: part/models.py:2355 part/models.py:2457 part/models.py:2579
 #: part/models.py:2669 part/models.py:2760 part/models.py:3050
@@ -679,19 +686,21 @@ msgstr "此次生产匹配的订单"
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
 #: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:94
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1300
-#: templates/js/translated/order.js:1755 templates/js/translated/order.js:2581
-#: templates/js/translated/order.js:2979 templates/js/translated/order.js:3194
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
+#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
 #: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
 #: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
 #: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2381
-#: templates/js/translated/stock.js:2576 templates/js/translated/stock.js:2710
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
 msgid "Part"
 msgstr "商品"
 
@@ -708,7 +717,7 @@ msgid "SalesOrder to which this build is allocated"
 msgstr "此次生产匹配的销售订单"
 
 #: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2569
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
 msgid "Source Location"
 msgstr "来源地点"
 
@@ -749,7 +758,7 @@ msgid "Build status code"
 msgstr "生产状态代码"
 
 #: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1160
+#: stock/models.py:669 templates/js/translated/order.js:1175
 msgid "Batch Code"
 msgstr "批量代码"
 
@@ -757,12 +766,12 @@ msgstr "批量代码"
 msgid "Batch code for this build output"
 msgstr "此生产产出的批量代码"
 
-#: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2267
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
 msgid "Creation Date"
 msgstr "创建日期"
 
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
 msgid "Target completion date"
 msgstr "预计完成日期"
 
@@ -770,8 +779,8 @@ msgstr "预计完成日期"
 msgid "Target date for build completion. Build will be overdue after this date."
 msgstr "生产完成的目标日期。生产将在此日期之后逾期。"
 
-#: build/models.py:300 order/models.py:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
 msgid "Completion Date"
 msgstr "完成日期:"
 
@@ -779,7 +788,7 @@ msgstr "完成日期:"
 msgid "completed by"
 msgstr "完成人"
 
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
 msgid "Issued by"
 msgstr "发布者"
 
@@ -788,11 +797,11 @@ msgid "User who issued this build order"
 msgstr "发布此生产订单的用户"
 
 #: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
 #: order/templates/order/order_base.html:176
 #: order/templates/order/sales_order_base.html:183 part/models.py:998
 #: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1596
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
 msgid "Responsible"
 msgstr "责任人"
 
@@ -804,14 +813,14 @@ msgstr "负责此生产订单的用户"
 #: company/templates/company/manufacturer_part.html:107
 #: company/templates/company/supplier_part.html:132
 #: part/templates/part/part_base.html:346 stock/models.py:663
-#: stock/templates/stock/item_base.html:363
+#: stock/templates/stock/item_base.html:205
 msgid "External Link"
 msgstr "外部链接"
 
 #: build/models.py:334 build/serializers.py:390
 #: build/templates/build/sidebar.html:21 company/models.py:134
 #: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
 #: order/templates/order/po_sidebar.html:11
 #: order/templates/order/so_sidebar.html:17 part/models.py:983
 #: part/templates/part/part_sidebar.html:59
@@ -820,11 +829,11 @@ msgstr "外部链接"
 #: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
 #: stock/serializers.py:826 stock/serializers.py:958
 #: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1922
-#: templates/js/translated/order.js:2073 templates/js/translated/order.js:2450
-#: templates/js/translated/order.js:3368 templates/js/translated/order.js:3766
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1922
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
 msgid "Notes"
 msgstr "备注"
 
@@ -857,7 +866,7 @@ msgstr ""
 msgid "Stock item is over-allocated"
 msgstr "库存物品分配过度!"
 
-#: build/models.py:1238 order/models.py:1329
+#: build/models.py:1238 order/models.py:1413
 msgid "Allocation quantity must be greater than zero"
 msgstr "分配数量必须大于0"
 
@@ -869,8 +878,8 @@ msgstr ""
 msgid "Selected stock item not found in BOM"
 msgstr ""
 
-#: build/models.py:1375 stock/templates/stock/item_base.html:335
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
 #: templates/navbar.html:38
 msgid "Build"
 msgstr "生产"
@@ -879,18 +888,18 @@ msgstr "生产"
 msgid "Build to allocate parts"
 msgstr ""
 
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:961
-#: order/serializers.py:979 stock/serializers.py:393 stock/serializers.py:666
+#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
+#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
 #: stock/serializers.py:784 stock/templates/stock/item_base.html:10
 #: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:357
+#: stock/templates/stock/item_base.html:199
 #: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:95 templates/js/translated/order.js:2582
-#: templates/js/translated/order.js:2886 templates/js/translated/order.js:2891
-#: templates/js/translated/order.js:2986 templates/js/translated/order.js:3076
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
 #: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2454
+#: templates/js/translated/stock.js:2449
 msgid "Stock Item"
 msgstr "库存项"
 
@@ -902,10 +911,10 @@ msgstr "源库存项"
 #: build/templates/build/build_base.html:82
 #: build/templates/build/detail.html:34 common/models.py:1610
 #: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1369 order/serializers.py:1100
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
 #: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_build_order_base.html:114
@@ -913,25 +922,24 @@ 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/serializers.py:282 stock/templates/stock/item_base.html:187
-#: stock/templates/stock/item_base.html:252
-#: stock/templates/stock/item_base.html:260
+#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/templates/stock/item_base.html:300
 #: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
 #: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
 #: templates/js/translated/model_renderers.js:108
-#: templates/js/translated/order.js:111 templates/js/translated/order.js:871
-#: templates/js/translated/order.js:1807 templates/js/translated/order.js:2008
-#: templates/js/translated/order.js:2583 templates/js/translated/order.js:2905
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3082
-#: templates/js/translated/order.js:3216 templates/js/translated/order.js:3701
+#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
 #: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
 #: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
 #: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
 #: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2503 templates/js/translated/stock.js:2588
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
 msgid "Quantity"
 msgstr "数量"
 
@@ -948,7 +956,7 @@ msgid "Destination stock item"
 msgstr ""
 
 #: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
 msgid "Build Output"
 msgstr ""
 
@@ -972,7 +980,7 @@ msgstr ""
 msgid "Enter quantity for build output"
 msgstr "输入生产产出数量"
 
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
 #: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
 #: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
 #: stock/serializers.py:294
@@ -987,8 +995,8 @@ msgstr ""
 msgid "Integer quantity required, as the bill of materials contains trackable parts"
 msgstr ""
 
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1104
-#: stock/serializers.py:303 templates/js/translated/order.js:1171
+#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
+#: stock/serializers.py:303 templates/js/translated/order.js:1186
 #: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
 msgid "Serial Numbers"
 msgstr "序列号"
@@ -1015,15 +1023,15 @@ msgstr ""
 
 #: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
 #: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:303
+#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
 #: templates/js/translated/barcode.js:436
 #: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1198
-#: templates/js/translated/order.js:2898 templates/js/translated/order.js:3001
-#: templates/js/translated/order.js:3009 templates/js/translated/order.js:3090
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
 #: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
 #: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1793 templates/js/translated/stock.js:2395
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
 msgid "Location"
 msgstr "地点"
 
@@ -1032,12 +1040,12 @@ msgid "Location for completed build outputs"
 msgstr ""
 
 #: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
-#: order/serializers.py:458 stock/templates/stock/item_base.html:193
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1305 templates/js/translated/order.js:1566
-#: templates/js/translated/order.js:2259 templates/js/translated/stock.js:1768
-#: templates/js/translated/stock.js:2472 templates/js/translated/stock.js:2604
+#: build/templates/build/detail.html:62 order/models.py:663
+#: order/serializers.py:458 stock/templates/stock/item_base.html:423
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
 msgid "Status"
 msgstr "状态"
 
@@ -1118,7 +1126,7 @@ msgstr ""
 msgid "Item must be in stock"
 msgstr ""
 
-#: build/serializers.py:694 order/serializers.py:1012
+#: build/serializers.py:694 order/serializers.py:1015
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
 msgstr ""
@@ -1135,7 +1143,7 @@ msgstr ""
 msgid "This stock item has already been allocated to this build output"
 msgstr ""
 
-#: build/serializers.py:739 order/serializers.py:1274
+#: build/serializers.py:739 order/serializers.py:1277
 msgid "Allocation items must be provided"
 msgstr ""
 
@@ -1233,13 +1241,13 @@ msgid "Stock has not been fully allocated to this Build Order"
 msgstr ""
 
 #: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
 #: order/templates/order/order_base.html:162
 #: order/templates/order/sales_order_base.html:164
 #: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1583
-#: templates/js/translated/order.js:1869 templates/js/translated/order.js:2275
-#: templates/js/translated/order.js:3279 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
 msgid "Target Date"
 msgstr "预计日期"
 
@@ -1266,14 +1274,14 @@ msgid "Completed"
 msgstr "已完成"
 
 #: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1273
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
 #: order/templates/order/sales_order_base.html:9
 #: order/templates/order/sales_order_base.html:28
 #: report/templates/report/inventree_build_order_base.html:136
 #: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:297
-#: templates/js/translated/order.js:2214
+#: stock/templates/stock/item_base.html:370
+#: templates/js/translated/order.js:2436
 msgid "Sales Order"
 msgstr "销售订单"
 
@@ -1308,8 +1316,8 @@ msgstr ""
 msgid "Stock can be taken from any available location."
 msgstr ""
 
-#: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1306 templates/js/translated/order.js:1911
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
 msgid "Destination"
 msgstr ""
 
@@ -1322,11 +1330,11 @@ msgid "Allocated Parts"
 msgstr ""
 
 #: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:321
-#: templates/js/translated/build.js:1184
+#: stock/templates/stock/item_base.html:170
+#: templates/js/translated/build.js:1179
 #: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
 #: templates/js/translated/table_filters.js:151
 #: templates/js/translated/table_filters.js:242
 msgid "Batch"
@@ -1335,7 +1343,7 @@ msgstr ""
 #: build/templates/build/detail.html:126
 #: order/templates/order/order_base.html:149
 #: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
 msgid "Created"
 msgstr "已创建"
 
@@ -1355,7 +1363,7 @@ msgstr "子生产订单"
 msgid "Allocate Stock to Build"
 msgstr "为生产分配库存"
 
-#: build/templates/build/detail.html:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
 msgid "Unallocate stock"
 msgstr "未分配库存"
 
@@ -1385,8 +1393,8 @@ msgstr "订单所需部件"
 
 #: build/templates/build/detail.html:187
 #: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177 templates/js/translated/order.js:911
+#: company/templates/company/detail.html:85
+#: part/templates/part/category.html:177 templates/js/translated/order.js:926
 msgid "Order Parts"
 msgstr "订购商品"
 
@@ -1461,8 +1469,8 @@ msgid "Completed Build Outputs"
 msgstr ""
 
 #: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
 #: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:82
 #: order/templates/order/sales_order_detail.html:129
@@ -1476,11 +1484,11 @@ msgstr "附件"
 msgid "Build Notes"
 msgstr "生产备注"
 
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
 msgid "Allocation Complete"
 msgstr ""
 
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
@@ -1492,18 +1500,6 @@ msgstr "新建生产订单"
 msgid "Print Build Orders"
 msgstr "打印生产订单"
 
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr "显示日历"
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr "列表视图"
-
 #: build/templates/build/sidebar.html:5
 msgid "Build Order Details"
 msgstr ""
@@ -1727,7 +1723,7 @@ msgstr "模板"
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
 #: templates/js/translated/table_filters.js:168
 #: templates/js/translated/table_filters.js:460
 msgid "Assembly"
@@ -2413,7 +2409,7 @@ msgid "Price break quantity"
 msgstr ""
 
 #: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: company/templates/company/supplier_part.html:263 order/models.py:975
 #: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
 msgid "Price"
 msgstr "价格"
@@ -2556,7 +2552,7 @@ msgstr "公司简介"
 
 #: company/models.py:104 company/templates/company/company_base.html:100
 #: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
 msgid "Website"
 msgstr "网站"
 
@@ -2651,10 +2647,11 @@ msgstr "选择商品"
 #: company/models.py:324 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
 #: company/templates/company/supplier_part.html:103
-#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: stock/templates/stock/item_base.html:212
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
 #: templates/js/translated/table_filters.js:411
 msgid "Manufacturer"
 msgstr "制造商"
@@ -2665,8 +2662,10 @@ msgstr "选择制造商"
 
 #: company/models.py:331 company/templates/company/manufacturer_part.html:101
 #: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1789
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
 #: templates/js/translated/part.js:246 templates/js/translated/part.js:956
 msgid "MPN"
 msgstr ""
@@ -2686,7 +2685,7 @@ msgstr "制造商商品描述"
 #: company/models.py:391 company/models.py:414 company/models.py:563
 #: company/templates/company/manufacturer_part.html:7
 #: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:380
+#: stock/templates/stock/item_base.html:222
 msgid "Manufacturer Part"
 msgstr "制造商商品"
 
@@ -2696,8 +2695,9 @@ msgstr "参数名称"
 
 #: company/models.py:427
 #: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
 msgid "Value"
 msgstr "数值"
 
@@ -2708,7 +2708,7 @@ msgstr "参数值"
 #: company/models.py:434 part/models.py:940 part/models.py:2549
 #: part/templates/part/part_base.html:280
 #: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
 msgid "Units"
 msgstr "单位"
 
@@ -2721,11 +2721,12 @@ msgid "Linked manufacturer part must reference the same base part"
 msgstr ""
 
 #: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
 #: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:387
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1549
+#: stock/templates/stock/item_base.html:229
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
 #: templates/js/translated/part.js:216 templates/js/translated/part.js:924
 #: templates/js/translated/table_filters.js:415
 msgid "Supplier"
@@ -2736,8 +2737,9 @@ msgid "Select supplier"
 msgstr "选择供应商"
 
 #: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1776
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
 msgid "SKU"
 msgstr ""
 
@@ -2773,8 +2775,8 @@ msgid "Minimum charge (e.g. stocking fee)"
 msgstr "最低收费(例如库存费)"
 
 #: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:328
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1918
+#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
 msgid "Packaging"
 msgstr "打包"
 
@@ -2804,12 +2806,12 @@ msgstr "货币代码"
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
 msgid "Company"
 msgstr "公司"
 
 #: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:522
+#: templates/js/translated/order.js:537
 msgid "Create Purchase Order"
 msgstr "创建采购订单"
 
@@ -2822,7 +2824,7 @@ msgid "Edit company information"
 msgstr "编辑公司信息"
 
 #: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
 msgid "Edit Company"
 msgstr "编辑公司信息"
 
@@ -2845,12 +2847,12 @@ msgstr "上传新图片"
 msgid "Download image from URL"
 msgstr "从 URL 下载图片"
 
-#: company/templates/company/company_base.html:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
 #: order/templates/order/sales_order_base.html:116 stock/models.py:650
 #: stock/models.py:651 stock/serializers.py:714
-#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2236
-#: templates/js/translated/stock.js:2436
+#: stock/templates/stock/item_base.html:401
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
 #: templates/js/translated/table_filters.js:419
 msgid "Customer"
 msgstr "客户"
@@ -2869,7 +2871,7 @@ msgid "Upload Image"
 msgstr "上传图片"
 
 #: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
+#: company/templates/company/manufacturer_part_sidebar.html:7
 #: templates/InvenTree/search.html:118
 msgid "Supplier Parts"
 msgstr "供应商商品"
@@ -2884,28 +2886,19 @@ msgstr "创建新的供应商商品"
 msgid "New Supplier Part"
 msgstr "新建供应商商品"
 
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr "选项"
-
 #: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
 #: part/templates/part/category.html:176
 msgid "Order parts"
 msgstr "订购商品"
 
 #: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
 msgid "Delete parts"
 msgstr "删除商品"
 
 #: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
 msgid "Delete Parts"
 msgstr "删除商品"
 
@@ -2917,88 +2910,76 @@ msgstr "制造商商品"
 msgid "Create new manufacturer part"
 msgstr "新建制造商商品"
 
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
 msgid "New Manufacturer Part"
 msgstr "新建制造商商品"
 
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
 msgid "Supplier Stock"
 msgstr "供货商库存"
 
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
 #: company/templates/company/sidebar.html:12
 #: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
 #: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:235 templates/navbar.html:50
 #: users/models.py:43
 msgid "Purchase Orders"
 msgstr "采购订单"
 
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
 #: order/templates/order/purchase_orders.html:17
 msgid "Create new purchase order"
 msgstr "新建采购订单"
 
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr "新建采购订单"
 
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
 #: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
 #: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
 #: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:259 templates/navbar.html:61
 #: users/models.py:44
 msgid "Sales Orders"
 msgstr "销售订单"
 
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
 #: order/templates/order/sales_orders.html:20
 msgid "Create new sales order"
 msgstr "新建销售订单"
 
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
 #: order/templates/order/sales_orders.html:21
 msgid "New Sales Order"
 msgstr "新建销售订单"
 
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
 msgid "Assigned Stock"
 msgstr ""
 
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
 msgid "Company Notes"
 msgstr "公司备注"
 
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr "删除供应商商品?"
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr "删除所有选定的供应商商品"
-
 #: company/templates/company/index.html:8
 msgid "Supplier List"
 msgstr "供应商列表"
 
 #: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
 #: templates/navbar.html:49
 msgid "Manufacturers"
 msgstr "制造商"
@@ -3011,12 +2992,12 @@ msgid "Order part"
 msgstr "订购商品"
 
 #: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
 msgid "Edit manufacturer part"
 msgstr "编辑制造商商品"
 
 #: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
 msgid "Delete manufacturer part"
 msgstr "删除生产商商品"
 
@@ -3032,55 +3013,46 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:119
 #: company/templates/company/supplier_part.html:15 company/views.py:41
 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
 msgid "Suppliers"
 msgstr "供应商"
 
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
 #: part/templates/part/detail.html:363
 msgid "Delete supplier parts"
 msgstr "删除供应商商品"
 
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
 msgid "Delete"
 msgstr "删除"
 
-#: company/templates/company/manufacturer_part.html:164
+#: company/templates/company/manufacturer_part.html:166
 #: company/templates/company/manufacturer_part_sidebar.html:5
 #: part/templates/part/category_sidebar.html:19
 #: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8
 msgid "Parameters"
 msgstr "参数"
 
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
 #: part/templates/part/detail.html:184
 #: templates/InvenTree/settings/category.html:12
 #: templates/InvenTree/settings/part.html:66
 msgid "New Parameter"
 msgstr "新建参数"
 
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
 msgid "Delete parameters"
 msgstr "删除参数"
 
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
 msgid "Add Parameter"
 msgstr "添加参数"
 
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr "所选参数将被删除"
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr "删除参数"
-
 #: company/templates/company/sidebar.html:6
 msgid "Manufactured Parts"
 msgstr ""
@@ -3099,19 +3071,19 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:615
-#: stock/templates/stock/item_base.html:396
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:869
-#: templates/js/translated/stock.js:1875
+#: stock/templates/stock/item_base.html:238
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
 msgid "Supplier Part"
 msgstr "供应商商品"
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
 msgid "Edit supplier part"
 msgstr "编辑供应商商品"
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
 msgid "Delete supplier part"
 msgstr "删除供应商商品"
 
@@ -3186,11 +3158,11 @@ msgstr ""
 #: part/templates/part/part_sidebar.html:14
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
 #: templates/InvenTree/settings/sidebar.html:43
 #: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
 #: templates/navbar.html:31
 msgid "Stock"
 msgstr "库存"
@@ -3216,8 +3188,8 @@ msgstr "定价"
 #: stock/templates/stock/location.html:161
 #: stock/templates/stock/location.html:173
 #: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2312 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
+#: templates/js/translated/stock.js:2307 users/models.py:41
 msgid "Stock Items"
 msgstr "库存项"
 
@@ -3229,7 +3201,7 @@ msgstr "新增供应商"
 msgid "New Manufacturer"
 msgstr "新建制造商"
 
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
 #: templates/navbar.html:60
 msgid "Customers"
 msgstr "客户信息"
@@ -3238,7 +3210,7 @@ msgstr "客户信息"
 msgid "New Customer"
 msgstr "新建客户"
 
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:212
 msgid "Companies"
 msgstr "公司"
 
@@ -3328,305 +3300,313 @@ msgstr "查询筛选器 (逗号分隔的键值对列表"
 msgid "Part query filters (comma-separated value of key=value pairs)"
 msgstr "商品查询筛选器 (逗号分隔的键值对列表)"
 
-#: order/models.py:130
+#: order/models.py:137
 msgid "Order description"
 msgstr ""
 
-#: order/models.py:132
+#: order/models.py:139 order/models.py:1274
 msgid "Link to external page"
 msgstr ""
 
-#: order/models.py:140
+#: order/models.py:147
 msgid "Created By"
 msgstr ""
 
-#: order/models.py:147
+#: order/models.py:154
 msgid "User or group responsible for this order"
 msgstr "负责此订单的用户或群组"
 
-#: order/models.py:152
+#: order/models.py:159
 msgid "Order notes"
 msgstr ""
 
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
 msgid "Order reference"
 msgstr ""
 
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
 msgid "Purchase order status"
 msgstr ""
 
-#: order/models.py:253
+#: order/models.py:311
 msgid "Company from which the items are being ordered"
 msgstr "订购该商品的公司"
 
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1558
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
 msgid "Supplier Reference"
 msgstr ""
 
-#: order/models.py:256
+#: order/models.py:314
 msgid "Supplier order reference code"
 msgstr ""
 
-#: order/models.py:263
+#: order/models.py:321
 msgid "received by"
 msgstr ""
 
-#: order/models.py:268
+#: order/models.py:326
 msgid "Issue Date"
 msgstr ""
 
-#: order/models.py:269
+#: order/models.py:327
 msgid "Date order was issued"
 msgstr ""
 
-#: order/models.py:274
+#: order/models.py:332
 msgid "Target Delivery Date"
 msgstr ""
 
-#: order/models.py:275
+#: order/models.py:333
 msgid "Expected date for order delivery. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:281
+#: order/models.py:339
 msgid "Date order was completed"
 msgstr ""
 
-#: order/models.py:310
+#: order/models.py:368
 msgid "Part supplier must match PO supplier"
 msgstr ""
 
-#: order/models.py:456
+#: order/models.py:514
 msgid "Quantity must be a positive number"
 msgstr "数量必须大于0"
 
-#: order/models.py:601
+#: order/models.py:659
 msgid "Company to which the items are being sold"
 msgstr "向其出售该商品的公司"
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer Reference "
 msgstr ""
 
-#: order/models.py:607
+#: order/models.py:665
 msgid "Customer order reference code"
 msgstr ""
 
-#: order/models.py:612
+#: order/models.py:670
 msgid "Target date for order completion. Order will be overdue after this date."
 msgstr ""
 
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2283 templates/js/translated/order.js:2434
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
 msgid "Shipment Date"
 msgstr ""
 
-#: order/models.py:622
+#: order/models.py:680
 msgid "shipped by"
 msgstr ""
 
-#: order/models.py:688
+#: order/models.py:746
 msgid "Order cannot be completed as no parts have been assigned"
 msgstr ""
 
-#: order/models.py:692
+#: order/models.py:750
 msgid "Only a pending order can be marked as complete"
 msgstr ""
 
-#: order/models.py:695
+#: order/models.py:753
 msgid "Order cannot be completed as there are incomplete shipments"
 msgstr ""
 
-#: order/models.py:698
+#: order/models.py:756
 msgid "Order cannot be completed as there are incomplete line items"
 msgstr ""
 
-#: order/models.py:878
+#: order/models.py:936
 msgid "Item quantity"
 msgstr ""
 
-#: order/models.py:884
+#: order/models.py:942
 msgid "Line item reference"
 msgstr ""
 
-#: order/models.py:886
+#: order/models.py:944
 msgid "Line item notes"
 msgstr ""
 
-#: order/models.py:891
+#: order/models.py:949
 msgid "Target shipping date for this line item"
 msgstr ""
 
-#: order/models.py:909
+#: order/models.py:967
 msgid "Context"
 msgstr ""
 
-#: order/models.py:910
+#: order/models.py:968
 msgid "Additional context for this line"
 msgstr ""
 
-#: order/models.py:918
+#: order/models.py:976
 msgid "Unit price"
 msgstr ""
 
-#: order/models.py:951
+#: order/models.py:1009
 msgid "Supplier part must match supplier"
 msgstr ""
 
-#: order/models.py:958
+#: order/models.py:1016
 msgid "deleted"
 msgstr ""
 
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1273
-#: templates/js/translated/order.js:2874
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
 msgid "Order"
 msgstr ""
 
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
 #: order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
 #: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:342
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1527
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1852
-#: templates/js/translated/stock.js:2417
+#: stock/templates/stock/item_base.html:184
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
 msgid "Purchase Order"
 msgstr ""
 
-#: order/models.py:984
+#: order/models.py:1042
 msgid "Supplier part"
 msgstr "供应商商品"
 
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1303 templates/js/translated/order.js:1891
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
 #: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
 #: templates/js/translated/table_filters.js:330
 msgid "Received"
 msgstr ""
 
-#: order/models.py:992
+#: order/models.py:1050
 msgid "Number of items received"
 msgstr ""
 
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:349
-#: templates/js/translated/stock.js:1906
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
+#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: templates/js/translated/stock.js:1900
 msgid "Purchase Price"
 msgstr "采购价格"
 
-#: order/models.py:1000
+#: order/models.py:1058
 msgid "Unit purchase price"
 msgstr ""
 
-#: order/models.py:1008
+#: order/models.py:1066
 msgid "Where does the Purchaser want this item to be stored?"
 msgstr ""
 
-#: order/models.py:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
 #: part/templates/part/prices.html:119 part/templates/part/prices.html:288
 msgid "Sale Price"
 msgstr "销售价格"
 
-#: order/models.py:1079
+#: order/models.py:1137
 msgid "Unit sale price"
 msgstr ""
 
-#: order/models.py:1084
+#: order/models.py:1142
 msgid "Shipped quantity"
 msgstr ""
 
-#: order/models.py:1171
+#: order/models.py:1229
 msgid "Date of shipment"
 msgstr ""
 
-#: order/models.py:1178
+#: order/models.py:1236
 msgid "Checked By"
 msgstr ""
 
-#: order/models.py:1179
+#: order/models.py:1237
 msgid "User who checked this shipment"
 msgstr ""
 
-#: order/models.py:1187
+#: order/models.py:1245
 msgid "Shipment number"
 msgstr ""
 
-#: order/models.py:1194
+#: order/models.py:1252
 msgid "Shipment notes"
 msgstr ""
 
-#: order/models.py:1201
+#: order/models.py:1259
 msgid "Tracking Number"
 msgstr ""
 
-#: order/models.py:1202
+#: order/models.py:1260
 msgid "Shipment tracking information"
 msgstr ""
 
-#: order/models.py:1213
+#: order/models.py:1267
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1268
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1285
 msgid "Shipment has already been sent"
 msgstr ""
 
-#: order/models.py:1216
+#: order/models.py:1288
 msgid "Shipment has no allocated stock items"
 msgstr ""
 
-#: order/models.py:1311 order/models.py:1313
+#: order/models.py:1395 order/models.py:1397
 msgid "Stock item has not been assigned"
 msgstr ""
 
-#: order/models.py:1317
+#: order/models.py:1401
 msgid "Cannot allocate stock item to a line with a different part"
 msgstr ""
 
-#: order/models.py:1319
+#: order/models.py:1403
 msgid "Cannot allocate stock to a line without a part"
 msgstr ""
 
-#: order/models.py:1322
+#: order/models.py:1406
 msgid "Allocation quantity cannot exceed stock quantity"
 msgstr ""
 
-#: order/models.py:1326
+#: order/models.py:1410
 msgid "StockItem is over-allocated"
 msgstr ""
 
-#: order/models.py:1332 order/serializers.py:1005
+#: order/models.py:1416 order/serializers.py:1008
 msgid "Quantity must be 1 for serialized stock item"
 msgstr ""
 
-#: order/models.py:1335
+#: order/models.py:1419
 msgid "Sales order does not match shipment"
 msgstr ""
 
-#: order/models.py:1336
+#: order/models.py:1420
 msgid "Shipment does not match sales order"
 msgstr ""
 
-#: order/models.py:1344
+#: order/models.py:1428
 msgid "Line"
 msgstr ""
 
-#: order/models.py:1352 order/serializers.py:1115 order/serializers.py:1243
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
 #: templates/js/translated/model_renderers.js:301
 msgid "Shipment"
 msgstr ""
 
-#: order/models.py:1353
+#: order/models.py:1437
 msgid "Sales order shipment reference"
 msgstr ""
 
-#: order/models.py:1365 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
 msgid "Item"
 msgstr ""
 
-#: order/models.py:1366
+#: order/models.py:1450
 msgid "Select stock item to allocate"
 msgstr ""
 
-#: order/models.py:1369
+#: order/models.py:1453
 msgid "Enter stock allocation quantity"
 msgstr ""
 
@@ -3662,7 +3642,7 @@ msgstr ""
 msgid "Purchase order must match supplier"
 msgstr ""
 
-#: order/serializers.py:406 order/serializers.py:1080
+#: order/serializers.py:406 order/serializers.py:1083
 msgid "Line Item"
 msgstr ""
 
@@ -3674,11 +3654,11 @@ msgstr ""
 msgid "Select destination location for received items"
 msgstr ""
 
-#: order/serializers.py:441 templates/js/translated/order.js:1161
+#: order/serializers.py:441 templates/js/translated/order.js:1176
 msgid "Enter batch code for incoming stock items"
 msgstr ""
 
-#: order/serializers.py:449 templates/js/translated/order.js:1172
+#: order/serializers.py:449 templates/js/translated/order.js:1187
 msgid "Enter serial numbers for incoming stock items"
 msgstr ""
 
@@ -3714,35 +3694,35 @@ msgstr ""
 msgid "Sale price currency"
 msgstr ""
 
-#: order/serializers.py:913
+#: order/serializers.py:917
 msgid "No shipment details provided"
 msgstr ""
 
-#: order/serializers.py:970 order/serializers.py:1092
+#: order/serializers.py:973 order/serializers.py:1095
 msgid "Line item is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:992
+#: order/serializers.py:995
 msgid "Quantity must be positive"
 msgstr ""
 
-#: order/serializers.py:1105
+#: order/serializers.py:1108
 msgid "Enter serial numbers to allocate"
 msgstr ""
 
-#: order/serializers.py:1129 order/serializers.py:1254
+#: order/serializers.py:1132 order/serializers.py:1257
 msgid "Shipment has already been shipped"
 msgstr ""
 
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1135 order/serializers.py:1260
 msgid "Shipment is not associated with this order"
 msgstr ""
 
-#: order/serializers.py:1184
+#: order/serializers.py:1187
 msgid "No match found for the following serial numbers"
 msgstr ""
 
-#: order/serializers.py:1194
+#: order/serializers.py:1197
 msgid "The following serial numbers are already allocated"
 msgstr ""
 
@@ -3832,7 +3812,12 @@ msgstr ""
 msgid "Total cost"
 msgstr ""
 
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
 msgid "Edit Purchase Order"
 msgstr ""
 
@@ -3863,9 +3848,9 @@ msgstr "选择供应商商品"
 #: part/templates/part/import_wizard/ajax_match_references.html:42
 #: part/templates/part/import_wizard/match_references.html:49
 #: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1250
-#: templates/js/translated/order.js:2493 templates/js/translated/stock.js:570
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
 #: templates/js/translated/stock.js:738
 #: templates/patterns/wizard/match_fields.html:70
 msgid "Remove row"
@@ -3929,7 +3914,7 @@ msgstr ""
 msgid "Order Notes"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
 msgid "Add Order Line"
 msgstr ""
 
@@ -3947,12 +3932,12 @@ msgid "Print packing list"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:211
+#: templates/js/translated/order.js:226
 msgid "Complete Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
 msgid "Complete Sales Order"
 msgstr ""
 
@@ -3961,7 +3946,7 @@ msgid "This Sales Order has not been fully allocated"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2249
+#: templates/js/translated/order.js:2471
 msgid "Customer Reference"
 msgstr ""
 
@@ -3971,7 +3956,7 @@ msgstr ""
 msgid "Completed Shipments"
 msgstr ""
 
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
 msgid "Edit Sales Order"
 msgstr ""
 
@@ -3985,7 +3970,7 @@ msgid "Pending Shipments"
 msgstr ""
 
 #: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
 msgid "Actions"
 msgstr ""
 
@@ -4113,7 +4098,7 @@ msgid "Part Category"
 msgstr "商品类别"
 
 #: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
 #: users/models.py:38
 msgid "Part Categories"
 msgstr "商品类别"
@@ -4124,7 +4109,7 @@ msgstr "商品类别"
 #: part/templates/part/category_sidebar.html:9
 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
 #: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
 #: templates/navbar.html:24 users/models.py:39
 msgid "Parts"
 msgstr "商品"
@@ -4202,7 +4187,7 @@ msgstr "商品类别"
 
 #: part/models.py:842 part/templates/part/part_base.html:266
 #: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
 msgid "IPN"
 msgstr ""
 
@@ -4316,7 +4301,7 @@ msgid "Test with this name already exists for this part"
 msgstr ""
 
 #: part/models.py:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
 msgid "Test Name"
 msgstr ""
 
@@ -4448,7 +4433,7 @@ msgid "BOM quantity for this BOM item"
 msgstr ""
 
 #: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
 #: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr "可选项"
@@ -4482,7 +4467,7 @@ msgid "BOM line checksum"
 msgstr ""
 
 #: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
 #: templates/js/translated/table_filters.js:68
 #: templates/js/translated/table_filters.js:88
 msgid "Inherited"
@@ -4493,7 +4478,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
 #: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
 msgid "Allow Variants"
 msgstr ""
 
@@ -4714,6 +4699,11 @@ msgstr "新建商品"
 msgid "New Part"
 msgstr "新商品"
 
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr "选项"
+
 #: part/templates/part/category.html:172
 msgid "Set category"
 msgstr "设置类别"
@@ -4902,46 +4892,46 @@ msgstr ""
 msgid "Part Suppliers"
 msgstr "商品供应商"
 
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
 msgid "Part Manufacturers"
 msgstr "商品制造商"
 
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
 msgid "Delete manufacturer parts"
 msgstr "删除制造商商品"
 
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
 msgid "Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
 msgid "Add Related Part"
 msgstr ""
 
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
@@ -5084,8 +5074,8 @@ msgid "Part is virtual (not a physical part)"
 msgstr "商品是虚拟的(不是实体零件)"
 
 #: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
 #: templates/js/translated/model_renderers.js:192
 #: templates/js/translated/part.js:581 templates/js/translated/part.js:658
 msgid "Inactive"
@@ -5101,20 +5091,22 @@ msgstr ""
 msgid "This part is a variant of %(link)s"
 msgstr ""
 
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3305
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
 #: templates/js/translated/table_filters.js:193
 msgid "In Stock"
 msgstr ""
 
 #: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:384
 msgid "Allocated to Build Orders"
 msgstr ""
 
 #: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:377
 msgid "Allocated to Sales Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
 msgid "Can Build"
 msgstr ""
 
@@ -5133,7 +5125,7 @@ msgid "Latest Serial Number"
 msgstr ""
 
 #: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:172
+#: stock/templates/stock/item_base.html:333
 msgid "Search for serial number"
 msgstr ""
 
@@ -5172,7 +5164,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -5291,7 +5283,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
 msgid "Supplier Cost"
 msgstr ""
 
@@ -5530,7 +5522,7 @@ msgstr ""
 msgid "Barcode associated with Stock Item"
 msgstr ""
 
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
 msgid "Label printing failed"
 msgstr ""
 
@@ -5770,12 +5762,12 @@ msgid "Stock Item Test Report"
 msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:162
+#: stock/models.py:655 stock/templates/stock/item_base.html:322
 #: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
 #: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:109 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3080 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
 msgid "Serial Number"
 msgstr "序列号"
 
@@ -5796,7 +5788,7 @@ msgstr ""
 #: report/templates/report/inventree_test_report_base.html:97
 #: templates/InvenTree/settings/plugin.html:51
 #: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1575 templates/js/translated/stock.js:2345
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
 msgid "Date"
 msgstr ""
 
@@ -5815,7 +5807,7 @@ msgstr ""
 
 #: report/templates/report/inventree_test_report_base.html:137
 #: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2594
+#: templates/js/translated/stock.js:2589
 msgid "Serial"
 msgstr ""
 
@@ -5832,7 +5824,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
 msgstr ""
 
 #: stock/models.py:82 stock/models.py:750
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:252
 msgid "Owner"
 msgstr ""
 
@@ -5894,7 +5886,7 @@ msgstr ""
 msgid "Packaging this stock item is stored in"
 msgstr ""
 
-#: stock/models.py:638 stock/templates/stock/item_base.html:288
+#: stock/models.py:638 stock/templates/stock/item_base.html:361
 msgid "Installed In"
 msgstr ""
 
@@ -5934,8 +5926,8 @@ msgstr ""
 msgid "Destination Sales Order"
 msgstr ""
 
-#: stock/models.py:713 stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1822
+#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: templates/js/translated/stock.js:1816
 msgid "Expiry Date"
 msgstr ""
 
@@ -6215,11 +6207,11 @@ msgstr ""
 msgid "Installed Stock Items"
 msgstr ""
 
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2738
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
 msgid "Install Stock Item"
 msgstr ""
 
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
 msgid "Add Test Result"
 msgstr ""
 
@@ -6311,110 +6303,114 @@ msgstr ""
 msgid "Delete stock item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:167
-msgid "previous page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:167
-msgid "Navigate to previous serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "next page"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:176
-msgid "Navigate to next serial number"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#, python-format
-msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:203
-#: templates/js/translated/table_filters.js:261
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#, python-format
-msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:205
-#: templates/js/translated/table_filters.js:267
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/stock.js:1838
-msgid "Last Updated"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:217
-msgid "Last Stocktake"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:221
-msgid "No stocktake performed"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:230
-msgid "This stock item is in production and cannot be edited."
-msgstr "此库存项目正在生产中,无法编辑。"
-
-#: stock/templates/stock/item_base.html:231
-msgid "Edit the stock item from the build view."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:244
-msgid "This stock item has not passed all required tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:252
-msgid "This stock item is allocated to Sales Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:260
-msgid "This stock item is allocated to Build Order"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:266
-msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr ""
-
-#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/build.js:1710
-msgid "No location set"
-msgstr "未设置仓储地点"
-
-#: stock/templates/stock/item_base.html:314
+#: stock/templates/stock/item_base.html:163
 msgid "Barcode Identifier"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:356
+#: stock/templates/stock/item_base.html:198
 msgid "Parent Item"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:374
+#: stock/templates/stock/item_base.html:216
 msgid "No manufacturer set"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:403
-msgid "Tests"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:421
+#: stock/templates/stock/item_base.html:256
 msgid "You are not in the list of owners of this item. This stock item cannot be edited."
 msgstr ""
 
-#: stock/templates/stock/item_base.html:422
+#: stock/templates/stock/item_base.html:257
 #: stock/templates/stock/location.html:127
 msgid "Read only"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:493
+#: stock/templates/stock/item_base.html:270
+msgid "This stock item is in production and cannot be edited."
+msgstr "此库存项目正在生产中,无法编辑。"
+
+#: stock/templates/stock/item_base.html:271
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:284
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:292
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:300
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:306
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "previous page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:328
+msgid "Navigate to previous serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "next page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:337
+msgid "Navigate to next serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:350
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:394
+#: templates/js/translated/build.js:1693
+msgid "No location set"
+msgstr "未设置仓储地点"
+
+#: stock/templates/stock/item_base.html:409
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#: templates/js/translated/table_filters.js:261
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:435
+#: templates/js/translated/table_filters.js:267
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:442
+#: templates/js/translated/stock.js:1832
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:447
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:451
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:521
 msgid "Edit Stock Status"
 msgstr ""
 
@@ -6486,8 +6482,8 @@ msgstr "您不在此仓储地的所有者列表中,无法编辑此仓储地。
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:198 users/models.py:40
 msgid "Stock Locations"
 msgstr "仓储地点"
 
@@ -6539,7 +6535,7 @@ msgstr ""
 msgid "Child Items"
 msgstr ""
 
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:221
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
 msgid "Convert Stock Item"
 msgstr ""
 
@@ -6564,55 +6560,55 @@ msgstr ""
 msgid "Are you sure you want to delete this stock tracking entry?"
 msgstr ""
 
-#: stock/views.py:119
+#: stock/views.py:125
 msgid "Stock Location QR code"
 msgstr "仓储地点二维码"
 
-#: stock/views.py:138
+#: stock/views.py:144
 msgid "Return to Stock"
 msgstr ""
 
-#: stock/views.py:147
+#: stock/views.py:153
 msgid "Specify a valid location"
 msgstr "指定一个有效仓储地点"
 
-#: stock/views.py:158
+#: stock/views.py:164
 msgid "Stock item returned from customer"
 msgstr ""
 
-#: stock/views.py:169
+#: stock/views.py:175
 msgid "Delete All Test Data"
 msgstr ""
 
-#: stock/views.py:186
+#: stock/views.py:192
 msgid "Confirm test data deletion"
 msgstr ""
 
-#: stock/views.py:187
+#: stock/views.py:193
 msgid "Check the confirmation box"
 msgstr "选中确认框"
 
-#: stock/views.py:202
+#: stock/views.py:208
 msgid "Stock Item QR Code"
 msgstr ""
 
-#: stock/views.py:258
+#: stock/views.py:264
 msgid "Delete Stock Location"
 msgstr "删除仓储地点"
 
-#: stock/views.py:271
+#: stock/views.py:277
 msgid "Delete Stock Item"
 msgstr ""
 
-#: stock/views.py:282
+#: stock/views.py:288
 msgid "Delete Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:289
+#: stock/views.py:295
 msgid "Edit Stock Tracking Entry"
 msgstr ""
 
-#: stock/views.py:298
+#: stock/views.py:304
 msgid "Add Stock Tracking Entry"
 msgstr ""
 
@@ -7331,9 +7327,9 @@ msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
 #: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
-#: templates/js/translated/order.js:913 templates/modals.html:15
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
+#: templates/js/translated/order.js:928 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
 msgstr ""
@@ -7602,14 +7598,14 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
 #: templates/js/translated/part.js:530
 #: templates/js/translated/table_filters.js:178
 msgid "Available"
@@ -7644,67 +7640,67 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
-#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
 msgid "No Response"
 msgstr ""
 
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
 msgid "No response from the InvenTree server"
 msgstr ""
 
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
 msgid "Error 400: Bad request"
 msgstr ""
 
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
 msgid "API request returned error code 400"
 msgstr ""
 
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
 msgid "Error 401: Not Authenticated"
 msgstr ""
 
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
 msgid "Authentication credentials not supplied"
 msgstr ""
 
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
 msgid "Error 403: Permission Denied"
 msgstr ""
 
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
 msgid "You do not have the required permissions to access this function"
 msgstr ""
 
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
 msgid "Error 404: Resource Not Found"
 msgstr ""
 
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
 msgid "The requested resource could not be located on the server"
 msgstr ""
 
-#: templates/js/translated/api.js:217
+#: templates/js/translated/api.js:262
 msgid "Error 405: Method Not Allowed"
 msgstr ""
 
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
 msgid "HTTP method not allowed at URL"
 msgstr ""
 
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
 msgid "Error 408: Timeout"
 msgstr ""
 
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
 msgid "Connection timeout while requesting data from server"
 msgstr ""
 
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
 msgid "Unhandled Error Code"
 msgstr ""
 
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
 msgid "Error code"
 msgstr ""
 
@@ -7765,7 +7761,7 @@ msgid "Unknown response from server"
 msgstr ""
 
 #: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "Invalid server response"
 msgstr ""
 
@@ -7847,12 +7843,12 @@ msgid "Download BOM Template"
 msgstr ""
 
 #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:694 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
 msgid "Format"
 msgstr ""
 
 #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:695
+#: templates/js/translated/order.js:710
 msgid "Select file format"
 msgstr ""
 
@@ -7932,84 +7928,84 @@ msgstr ""
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
 msgid "Load BOM for subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
 msgid "No Stock Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
 msgid "Includes variant and substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
 #: templates/js/translated/part.js:690
 msgid "Includes variant stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
 msgid "Includes substitute stock"
 msgstr ""
 
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -8131,262 +8127,270 @@ msgstr ""
 msgid "Location not specified"
 msgstr "未指定仓储地点"
 
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
 msgid "No active build outputs found"
 msgstr ""
 
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
 msgid "Allocated Stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
 msgid "No tracked BOM items for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
 msgid "Completed Tests"
 msgstr ""
 
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
 msgid "No required tests for this build"
 msgstr ""
 
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3028
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
 msgid "Edit stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3029
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
 msgid "Delete stock allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
 msgid "Edit Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
 msgid "Remove Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
 msgid "Substitute parts available"
 msgstr ""
 
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
 msgid "Quantity Per"
 msgstr ""
 
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
 msgid "Insufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
 msgid "Sufficient stock available"
 msgstr ""
 
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3315
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
 msgid "Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3395
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
 msgid "Build stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
 msgid "Order stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3388
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
 msgid "Allocate stock"
 msgstr ""
 
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:741 templates/js/translated/order.js:2555
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
 #: templates/js/translated/report.js:225
 msgid "Select Parts"
 msgstr "选择商品"
 
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2556
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
 msgid "You must select at least one part to allocate"
 msgstr ""
 
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2504
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
 msgid "All Parts Allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
 msgid "All selected parts have been fully allocated"
 msgstr ""
 
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2570
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
 msgid "Select source location (leave blank to take from all locations)"
 msgstr ""
 
-#: templates/js/translated/build.js:2117
+#: templates/js/translated/build.js:2100
 msgid "Allocate Stock Items to Build Order"
 msgstr ""
 
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2667
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
 msgid "No matching stock locations"
 msgstr ""
 
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2744
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
 msgid "No matching stock items"
 msgstr ""
 
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
 msgid "Automatic Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
 msgstr ""
 
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
 msgid "If a location is specifed, stock will only be allocated from that location"
 msgstr ""
 
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
 msgstr ""
 
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
 msgstr ""
 
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
 msgid "Allocate Stock Items"
 msgstr ""
 
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
 msgid "Select"
 msgstr ""
 
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
 msgid "Build order is overdue"
 msgstr ""
 
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
 msgid "Progress"
 msgstr ""
 
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2524
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
 msgid "No user information"
 msgstr "没有用户信息"
 
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
 msgid "No information"
 msgstr ""
 
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
 msgid "No parts allocated for"
 msgstr ""
 
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
 msgid "Add Manufacturer"
 msgstr "添加制造商"
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
 msgid "Add Manufacturer Part"
 msgstr "添加制造商商品"
 
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
 msgid "Edit Manufacturer Part"
 msgstr "编辑制造商商品"
 
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr "删除制造商商品"
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:491
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
 msgid "Add Supplier"
 msgstr "添加供应商"
 
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
 msgid "Add Supplier Part"
 msgstr "添加供应商商品"
 
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
 msgid "Edit Supplier Part"
 msgstr "编辑供应商商品"
 
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
-msgstr "删除供应商商品"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
+msgstr "删除所有选定的供应商商品"
 
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:342
 msgid "Add new Company"
 msgstr "增加新的公司信息"
 
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
 msgid "No company information found"
 msgstr "未找到该公司信息"
 
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
 msgid "Delete Manufacturer Parts"
 msgstr "删除制造商商品"
 
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr "删除参数"
+
+#: templates/js/translated/company.js:595
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
 #: templates/js/translated/part.js:650
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
 #: templates/js/translated/part.js:654
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
 msgid "No parameters found"
 msgstr "无指定参数"
 
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
 msgid "Edit parameter"
 msgstr "编辑参数"
 
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
 msgid "Delete parameter"
 msgstr "删除参数"
 
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
 msgid "Edit Parameter"
 msgstr "编辑参数"
 
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
 msgid "Delete Parameter"
 msgstr "删除参数"
 
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
 msgid "No supplier parts found"
 msgstr "未找到供应商商品"
 
@@ -8424,61 +8428,61 @@ msgstr ""
 msgid "Create filter"
 msgstr ""
 
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
 msgid "Action Prohibited"
 msgstr ""
 
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
 msgid "Create operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
 msgid "Update operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
 msgid "Delete operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
 msgid "View operation not allowed"
 msgstr ""
 
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
 msgid "Keep this form open"
 msgstr ""
 
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
 msgid "Enter a valid number"
 msgstr ""
 
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
 #: templates/modals.html:43
 msgid "Form errors exist"
 msgstr ""
 
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
 msgid "No results found"
 msgstr ""
 
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
 msgid "Searching"
 msgstr ""
 
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
 msgid "Clear input"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "File Column"
 msgstr ""
 
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
 msgid "Field Name"
 msgstr ""
 
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
 msgid "Select Columns"
 msgstr ""
 
@@ -8552,62 +8556,62 @@ msgstr "已选择库存项"
 msgid "Select Label Template"
 msgstr "选择标签模板"
 
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
 msgid "Cancel"
 msgstr "取消"
 
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
 #: templates/modals.html:28 templates/modals.html:51
 msgid "Submit"
 msgstr ""
 
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
 msgid "Form Title"
 msgstr ""
 
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
 msgid "Waiting for server..."
 msgstr ""
 
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
 msgid "Show Error Information"
 msgstr ""
 
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
 msgid "Accept"
 msgstr ""
 
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
 msgid "Loading Data"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Invalid response from server"
 msgstr ""
 
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
 msgid "Form data missing from server response"
 msgstr ""
 
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
 msgid "Error posting form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
 msgid "JSON response missing form data"
 msgstr ""
 
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
 msgid "Error 400: Bad Request"
 msgstr ""
 
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
 msgid "Server returned error code 400"
 msgstr ""
 
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
 msgid "Error requesting form data"
 msgstr ""
 
@@ -8665,377 +8669,381 @@ msgstr ""
 msgid "Notifications will load here"
 msgstr ""
 
-#: templates/js/translated/order.js:85
+#: templates/js/translated/order.js:91
 msgid "No stock items have been allocated to this shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:90
+#: templates/js/translated/order.js:96
 msgid "The following stock items will be shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:130
+#: templates/js/translated/order.js:136
 msgid "Complete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:156
 msgid "Confirm Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:197
+#: templates/js/translated/order.js:212
 msgid "No pending shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:201
+#: templates/js/translated/order.js:216
 msgid "No stock items have been allocated to pending shipments"
 msgstr ""
 
-#: templates/js/translated/order.js:233
+#: templates/js/translated/order.js:248
 msgid "Skip"
 msgstr ""
 
-#: templates/js/translated/order.js:263
+#: templates/js/translated/order.js:278
 msgid "Complete Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:269
+#: templates/js/translated/order.js:284
 msgid "Mark this order as complete?"
 msgstr ""
 
-#: templates/js/translated/order.js:275
+#: templates/js/translated/order.js:290
 msgid "All line items have been received"
 msgstr ""
 
-#: templates/js/translated/order.js:280
+#: templates/js/translated/order.js:295
 msgid "This order has line items which have not been marked as received."
 msgstr ""
 
-#: templates/js/translated/order.js:281
+#: templates/js/translated/order.js:296
 msgid "Completing this order means that the order and line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:304
+#: templates/js/translated/order.js:319
 msgid "Cancel Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:309
+#: templates/js/translated/order.js:324
 msgid "Are you sure you wish to cancel this purchase order?"
 msgstr ""
 
-#: templates/js/translated/order.js:315
+#: templates/js/translated/order.js:330
 msgid "This purchase order can not be cancelled"
 msgstr ""
 
-#: templates/js/translated/order.js:338
+#: templates/js/translated/order.js:353
 msgid "Issue Purchase Order"
 msgstr ""
 
-#: templates/js/translated/order.js:343
+#: templates/js/translated/order.js:358
 msgid "After placing this purchase order, line items will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:365
+#: templates/js/translated/order.js:380
 msgid "Cancel Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:370
+#: templates/js/translated/order.js:385
 msgid "Cancelling this order means that the order will no longer be editable."
 msgstr ""
 
-#: templates/js/translated/order.js:424
+#: templates/js/translated/order.js:439
 msgid "Create New Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:464
 msgid "Add Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:474
+#: templates/js/translated/order.js:489
 msgid "Create Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:691
+#: templates/js/translated/order.js:706
 msgid "Export Order"
 msgstr ""
 
-#: templates/js/translated/order.js:742
+#: templates/js/translated/order.js:757
 msgid "At least one purchaseable part must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:767
+#: templates/js/translated/order.js:782
 msgid "Quantity to order"
 msgstr ""
 
-#: templates/js/translated/order.js:776
+#: templates/js/translated/order.js:791
 msgid "New supplier part"
 msgstr ""
 
-#: templates/js/translated/order.js:794
+#: templates/js/translated/order.js:809
 msgid "New purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:827
+#: templates/js/translated/order.js:842
 msgid "Add to purchase order"
 msgstr ""
 
-#: templates/js/translated/order.js:936
+#: templates/js/translated/order.js:951
 msgid "No matching supplier parts"
 msgstr ""
 
-#: templates/js/translated/order.js:951
+#: templates/js/translated/order.js:966
 msgid "No matching purchase orders"
 msgstr ""
 
-#: templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1122
 msgid "Select Line Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1123
 msgid "At least one line item must be selected"
 msgstr ""
 
-#: templates/js/translated/order.js:1128 templates/js/translated/order.js:1227
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1242
 msgid "Add batch code"
 msgstr ""
 
-#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1238
+#: templates/js/translated/order.js:1149 templates/js/translated/order.js:1253
 msgid "Add serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:1146
+#: templates/js/translated/order.js:1161
 msgid "Quantity to receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1210 templates/js/translated/stock.js:2085
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
 msgid "Stock Status"
 msgstr ""
 
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1316
 msgid "Order Code"
 msgstr "订单编码"
 
-#: templates/js/translated/order.js:1302
+#: templates/js/translated/order.js:1317
 msgid "Ordered"
 msgstr ""
 
-#: templates/js/translated/order.js:1304
+#: templates/js/translated/order.js:1319
 msgid "Quantity to Receive"
 msgstr ""
 
-#: templates/js/translated/order.js:1323
+#: templates/js/translated/order.js:1338
 msgid "Confirm receipt of items"
 msgstr ""
 
-#: templates/js/translated/order.js:1324
+#: templates/js/translated/order.js:1339
 msgid "Receive Purchase Order Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1516 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
 msgid "No purchase orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:1541 templates/js/translated/order.js:2226
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
 msgid "Order is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1591 templates/js/translated/order.js:2291
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
 msgid "Items"
 msgstr ""
 
-#: templates/js/translated/order.js:1665 templates/js/translated/order.js:3447
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
 msgid "Duplicate Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1682 templates/js/translated/order.js:3469
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
 msgid "Edit Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:3480
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
 msgid "Delete Line Item"
 msgstr ""
 
-#: templates/js/translated/order.js:1738
+#: templates/js/translated/order.js:1856
 msgid "No line items found"
 msgstr ""
 
-#: templates/js/translated/order.js:1765 templates/js/translated/order.js:3204
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
 msgid "Total"
 msgstr ""
 
-#: templates/js/translated/order.js:1819 templates/js/translated/order.js:2021
-#: templates/js/translated/order.js:3229 templates/js/translated/order.js:3714
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
 #: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
 msgid "Unit Price"
 msgstr "单价"
 
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2037
-#: templates/js/translated/order.js:3245 templates/js/translated/order.js:3730
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
 msgid "Total Price"
 msgstr ""
 
-#: templates/js/translated/order.js:1875 templates/js/translated/order.js:3287
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
 #: templates/js/translated/part.js:979
 msgid "This line item is overdue"
 msgstr ""
 
-#: templates/js/translated/order.js:1934 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
 msgid "Receive line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1938 templates/js/translated/order.js:3401
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
 msgid "Duplicate line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1939 templates/js/translated/order.js:3402
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
 msgid "Edit line item"
 msgstr ""
 
-#: templates/js/translated/order.js:1940 templates/js/translated/order.js:3406
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
 msgid "Delete line item"
 msgstr ""
 
-#: templates/js/translated/order.js:2086 templates/js/translated/order.js:3779
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
 msgid "Duplicate line"
 msgstr ""
 
-#: templates/js/translated/order.js:2087 templates/js/translated/order.js:3780
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
 msgid "Edit line"
 msgstr ""
 
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:3781
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
 msgid "Delete line"
 msgstr ""
 
-#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
 msgid "Duplicate Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2139 templates/js/translated/order.js:3832
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
 msgid "Edit Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2150 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
 msgid "Delete Line"
 msgstr ""
 
-#: templates/js/translated/order.js:2161
+#: templates/js/translated/order.js:2279
 msgid "No matching line"
 msgstr ""
 
-#: templates/js/translated/order.js:2202
+#: templates/js/translated/order.js:2392
 msgid "No sales orders found"
 msgstr ""
 
-#: templates/js/translated/order.js:2240
+#: templates/js/translated/order.js:2462
 msgid "Invalid Customer"
 msgstr ""
 
-#: templates/js/translated/order.js:2327
+#: templates/js/translated/order.js:2549
 msgid "Edit shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2330
+#: templates/js/translated/order.js:2552
 msgid "Complete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2335
+#: templates/js/translated/order.js:2557
 msgid "Delete shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2355
+#: templates/js/translated/order.js:2577
 msgid "Edit Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2372
+#: templates/js/translated/order.js:2594
 msgid "Delete Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2406
+#: templates/js/translated/order.js:2628
 msgid "No matching shipments found"
 msgstr ""
 
-#: templates/js/translated/order.js:2416
+#: templates/js/translated/order.js:2638
 msgid "Shipment Reference"
 msgstr ""
 
-#: templates/js/translated/order.js:2440
+#: templates/js/translated/order.js:2662
 msgid "Not shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:2446
+#: templates/js/translated/order.js:2668
 msgid "Tracking"
 msgstr ""
 
-#: templates/js/translated/order.js:2603
+#: templates/js/translated/order.js:2672
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:2841
 msgid "Add Shipment"
 msgstr ""
 
-#: templates/js/translated/order.js:2654
+#: templates/js/translated/order.js:2892
 msgid "Confirm stock allocation"
 msgstr "确认库存分配"
 
-#: templates/js/translated/order.js:2655
+#: templates/js/translated/order.js:2893
 msgid "Allocate Stock Items to Sales Order"
 msgstr ""
 
-#: templates/js/translated/order.js:2863
+#: templates/js/translated/order.js:3101
 msgid "No sales order allocations found"
 msgstr ""
 
-#: templates/js/translated/order.js:2944
+#: templates/js/translated/order.js:3182
 msgid "Edit Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:2961
+#: templates/js/translated/order.js:3199
 msgid "Confirm Delete Operation"
 msgstr "确认删除操作"
 
-#: templates/js/translated/order.js:2962
+#: templates/js/translated/order.js:3200
 msgid "Delete Stock Allocation"
 msgstr ""
 
-#: templates/js/translated/order.js:3005 templates/js/translated/order.js:3094
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
 msgid "Shipped to customer"
 msgstr ""
 
-#: templates/js/translated/order.js:3013 templates/js/translated/order.js:3103
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
 msgid "Stock location not specified"
 msgstr ""
 
-#: templates/js/translated/order.js:3385
+#: templates/js/translated/order.js:3623
 msgid "Allocate serial numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3391
+#: templates/js/translated/order.js:3629
 msgid "Purchase stock"
 msgstr ""
 
-#: templates/js/translated/order.js:3398 templates/js/translated/order.js:3596
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
 msgid "Calculate price"
 msgstr ""
 
-#: templates/js/translated/order.js:3410
+#: templates/js/translated/order.js:3648
 msgid "Cannot be deleted as items have been shipped"
 msgstr ""
 
-#: templates/js/translated/order.js:3413
+#: templates/js/translated/order.js:3651
 msgid "Cannot be deleted as items have been allocated"
 msgstr ""
 
-#: templates/js/translated/order.js:3495
+#: templates/js/translated/order.js:3733
 msgid "Allocate Serial Numbers"
 msgstr ""
 
-#: templates/js/translated/order.js:3604
+#: templates/js/translated/order.js:3842
 msgid "Update Unit Price"
 msgstr ""
 
-#: templates/js/translated/order.js:3618
+#: templates/js/translated/order.js:3856
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/order.js:3854
+#: templates/js/translated/order.js:4092
 msgid "No matching lines"
 msgstr ""
 
@@ -9217,7 +9225,7 @@ msgid "No category"
 msgstr "没有分类"
 
 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2243
+#: templates/js/translated/stock.js:2238
 msgid "Display as list"
 msgstr ""
 
@@ -9225,7 +9233,7 @@ msgstr ""
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2262
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
 msgid "Display as tree"
 msgstr ""
 
@@ -9233,7 +9241,7 @@ msgstr ""
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2306
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
 msgid "Path"
 msgstr ""
 
@@ -9241,12 +9249,12 @@ msgstr ""
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
 msgid "Delete test result"
 msgstr ""
 
@@ -9367,11 +9375,11 @@ msgstr ""
 msgid "Sales Order(s) must be selected before printing report"
 msgstr ""
 
-#: templates/js/translated/search.js:307
+#: templates/js/translated/search.js:352
 msgid "Minimize results"
 msgstr ""
 
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:355
 msgid "Remove results"
 msgstr ""
 
@@ -9531,204 +9539,204 @@ msgstr ""
 msgid "Confirm stock adjustment"
 msgstr ""
 
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
 msgid "PASS"
 msgstr ""
 
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
 msgid "FAIL"
 msgstr ""
 
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
 msgid "NO RESULT"
 msgstr ""
 
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
 msgid "Pass test"
 msgstr ""
 
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
 msgid "Add test result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
 msgid "No test results found"
 msgstr ""
 
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
 msgid "Test Date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
 msgid "Edit Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
 msgid "Delete Test Result"
 msgstr ""
 
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
 msgid "In production"
 msgstr "正在生产"
 
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
 msgid "Installed in Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
 msgid "Assigned to Sales Order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
 msgid "No stock location set"
 msgstr "未设置仓储地点"
 
-#: templates/js/translated/stock.js:1713
+#: templates/js/translated/stock.js:1712
 msgid "Stock item is in production"
 msgstr "库存品正在生产"
 
-#: templates/js/translated/stock.js:1718
+#: templates/js/translated/stock.js:1717
 msgid "Stock item assigned to sales order"
 msgstr ""
 
-#: templates/js/translated/stock.js:1721
+#: templates/js/translated/stock.js:1720
 msgid "Stock item assigned to customer"
 msgstr ""
 
-#: templates/js/translated/stock.js:1725
-msgid "Stock item has expired"
-msgstr ""
-
-#: templates/js/translated/stock.js:1727
-msgid "Stock item will expire soon"
-msgstr ""
-
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
 msgid "Serialized stock item has been allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
 msgid "Stock item has been fully allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
 msgid "Stock item has been partially allocated"
 msgstr ""
 
-#: templates/js/translated/stock.js:1742
+#: templates/js/translated/stock.js:1730
 msgid "Stock item has been installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1734
+msgid "Stock item has expired"
+msgstr ""
+
+#: templates/js/translated/stock.js:1736
+msgid "Stock item will expire soon"
+msgstr ""
+
+#: templates/js/translated/stock.js:1743
 msgid "Stock item has been rejected"
 msgstr ""
 
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1745
 msgid "Stock item is lost"
 msgstr ""
 
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1747
 msgid "Stock item is destroyed"
 msgstr ""
 
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1751
 #: templates/js/translated/table_filters.js:188
 msgid "Depleted"
 msgstr ""
 
-#: templates/js/translated/stock.js:1808
+#: templates/js/translated/stock.js:1802
 msgid "Stocktake"
 msgstr ""
 
-#: templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:1884
 msgid "Supplier part not specified"
 msgstr ""
 
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1922
 msgid "No stock items matching query"
 msgstr ""
 
-#: templates/js/translated/stock.js:2100
+#: templates/js/translated/stock.js:2095
 msgid "Set Stock Status"
 msgstr ""
 
-#: templates/js/translated/stock.js:2114
+#: templates/js/translated/stock.js:2109
 msgid "Select Status Code"
 msgstr ""
 
-#: templates/js/translated/stock.js:2115
+#: templates/js/translated/stock.js:2110
 msgid "Status code must be selected"
 msgstr ""
 
-#: templates/js/translated/stock.js:2370
+#: templates/js/translated/stock.js:2365
 msgid "Details"
 msgstr "详情"
 
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/stock.js:2381
 msgid "Part information unavailable"
 msgstr ""
 
-#: templates/js/translated/stock.js:2408
+#: templates/js/translated/stock.js:2403
 msgid "Location no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2427
+#: templates/js/translated/stock.js:2422
 msgid "Purchase order no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
 msgid "Customer no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2464
+#: templates/js/translated/stock.js:2459
 msgid "Stock item no longer exists"
 msgstr ""
 
-#: templates/js/translated/stock.js:2487
+#: templates/js/translated/stock.js:2482
 msgid "Added"
 msgstr ""
 
-#: templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2490
 msgid "Removed"
 msgstr ""
 
-#: templates/js/translated/stock.js:2571
+#: templates/js/translated/stock.js:2566
 msgid "No installed items"
 msgstr ""
 
-#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
 msgid "Uninstall Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2671
+#: templates/js/translated/stock.js:2666
 msgid "Select stock item to uninstall"
 msgstr ""
 
-#: templates/js/translated/stock.js:2692
+#: templates/js/translated/stock.js:2687
 msgid "Install another stock item into this item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2693
+#: templates/js/translated/stock.js:2688
 msgid "Stock items can only be installed if they meet the following criteria"
 msgstr ""
 
-#: templates/js/translated/stock.js:2695
+#: templates/js/translated/stock.js:2690
 msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2691
 msgid "The Stock Item is currently available in stock"
 msgstr ""
 
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2692
 msgid "The Stock Item is not already installed in another item"
 msgstr ""
 
-#: templates/js/translated/stock.js:2698
+#: templates/js/translated/stock.js:2693
 msgid "The Stock Item is tracked by either a batch code or serial number"
 msgstr ""
 
-#: templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2706
 msgid "Select part to install"
 msgstr ""
 
@@ -9960,69 +9968,81 @@ msgstr ""
 msgid "Purchasable"
 msgstr ""
 
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr "显示日历"
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr "列表视图"
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
 msgid "Export Table Data"
 msgstr ""
 
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
 msgid "Select File Format"
 msgstr ""
 
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
 msgid "Loading data"
 msgstr ""
 
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
 msgid "rows per page"
 msgstr ""
 
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
 msgid "Showing all rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "Showing"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "to"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "of"
 msgstr ""
 
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
 msgid "rows"
 msgstr ""
 
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
 #: templates/search.html:8 templates/search_form.html:6
 #: templates/search_form.html:7
 msgid "Search"
 msgstr "搜索"
 
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
 msgid "No matching results"
 msgstr ""
 
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
 msgid "Hide/Show pagination"
 msgstr ""
 
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
 msgid "Refresh"
 msgstr ""
 
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
 msgid "Toggle"
 msgstr ""
 
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
 msgid "Columns"
 msgstr ""
 
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
 msgid "All"
 msgstr ""