diff --git a/InvenTree/locale/bg/LC_MESSAGES/django.po b/InvenTree/locale/bg/LC_MESSAGES/django.po
index 66b1adf1fe..dc14c7b5a4 100644
--- a/InvenTree/locale/bg/LC_MESSAGES/django.po
+++ b/InvenTree/locale/bg/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:06\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Bulgarian\n"
 "Language: bg_BG\n"
@@ -56,8 +56,8 @@ msgstr "Въведи дата"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr ""
 msgid "Select file to attach"
 msgstr ""
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr ""
 msgid "File comment"
 msgstr ""
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr ""
 msgid "Invalid choice"
 msgstr ""
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr ""
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr ""
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr ""
 msgid "An error has been logged by the server."
 msgstr ""
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr ""
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -661,7 +661,7 @@ msgstr "Китайски (опростен)"
 msgid "Chinese (Traditional)"
 msgstr "Китайски (традиционен)"
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr ""
 
@@ -917,14 +917,14 @@ msgstr ""
 msgid "Build must be cancelled before it can be deleted"
 msgstr ""
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr ""
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -993,7 +993,7 @@ msgstr ""
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1023,11 @@ msgstr ""
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1168,13 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1206,7 @@ msgstr ""
 msgid "Priority of this build order"
 msgstr ""
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1244,7 @@ msgstr ""
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr ""
@@ -1258,10 +1259,10 @@ msgstr ""
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1426,7 @@ msgid "A list of build outputs must be provided"
 msgstr ""
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2032,1365 +2033,1369 @@ msgstr ""
 msgid "Select {name} file to upload"
 msgstr ""
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr ""
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr ""
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr ""
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr ""
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr ""
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr ""
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr ""
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr ""
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr ""
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr ""
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr ""
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr ""
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr ""
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr ""
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr ""
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr ""
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr ""
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr ""
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr ""
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr ""
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr ""
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr ""
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr ""
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr ""
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr ""
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr ""
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr ""
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr ""
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr ""
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr ""
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr ""
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr ""
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr ""
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr ""
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr ""
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr ""
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr ""
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr ""
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr ""
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr ""
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr ""
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr ""
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr ""
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr ""
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr ""
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr ""
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr ""
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr ""
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr ""
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr ""
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr ""
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr ""
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr ""
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr ""
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr ""
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr ""
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr ""
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr ""
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr ""
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr ""
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr ""
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr ""
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr ""
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr ""
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr ""
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr ""
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr ""
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr ""
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr ""
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr ""
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr ""
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr ""
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr ""
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr ""
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr ""
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr ""
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr ""
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr ""
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr ""
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr ""
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr ""
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr ""
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr ""
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr ""
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr ""
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr ""
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr ""
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr ""
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr ""
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr ""
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr ""
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr ""
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr ""
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr ""
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr ""
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr ""
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr ""
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr ""
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr ""
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr ""
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr ""
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr ""
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr ""
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr ""
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr ""
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr ""
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr ""
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr ""
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr ""
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr ""
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr ""
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr ""
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr ""
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr ""
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr ""
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr ""
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr ""
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr ""
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr ""
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr ""
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr ""
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr ""
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr ""
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr ""
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr ""
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr ""
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr ""
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr ""
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr ""
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr ""
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr ""
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr ""
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr ""
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr ""
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr ""
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr ""
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr ""
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr ""
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr ""
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr ""
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr ""
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr ""
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr ""
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr ""
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr ""
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr ""
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr ""
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr ""
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr ""
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr ""
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr ""
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr ""
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr ""
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr ""
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr ""
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr ""
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr ""
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr ""
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr ""
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr ""
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr ""
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr ""
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr ""
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr ""
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr ""
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr ""
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr ""
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr ""
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr ""
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr ""
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr ""
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr ""
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr ""
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr ""
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr ""
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr ""
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr ""
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr ""
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr ""
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr ""
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr ""
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr ""
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr ""
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr ""
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr ""
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr ""
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr ""
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr ""
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr ""
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr ""
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr ""
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr ""
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr ""
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr ""
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr ""
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr ""
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr ""
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr ""
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr ""
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr ""
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr ""
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr ""
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr ""
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr ""
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr ""
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr ""
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr ""
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr ""
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr ""
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr ""
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr ""
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr ""
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr ""
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr ""
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr ""
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr ""
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr ""
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr ""
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr ""
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr ""
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr ""
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr ""
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr ""
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr ""
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr ""
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr ""
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr ""
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr ""
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr ""
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr ""
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr ""
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr ""
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr ""
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr ""
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr ""
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr ""
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr ""
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr ""
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr ""
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr ""
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr ""
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr ""
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr ""
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr ""
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr ""
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr ""
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr ""
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr ""
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr ""
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr ""
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr ""
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr ""
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr ""
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr ""
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr ""
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr ""
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr ""
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr ""
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr ""
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr ""
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr ""
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr ""
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr ""
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3398,23 +3403,23 @@ msgstr ""
 msgid "Price"
 msgstr ""
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr ""
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr ""
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr ""
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3423,101 +3428,101 @@ msgstr ""
 msgid "Active"
 msgstr ""
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr ""
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr ""
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr ""
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr ""
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr ""
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr ""
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr ""
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr ""
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr ""
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr ""
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr ""
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr ""
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr ""
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr ""
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr ""
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr ""
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr ""
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr ""
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr ""
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr ""
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr ""
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr ""
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr ""
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3527,31 +3532,31 @@ msgstr ""
 msgid "Image"
 msgstr ""
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr ""
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3806,7 +3811,7 @@ msgstr ""
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3821,7 +3826,7 @@ msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3867,7 +3872,7 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3893,7 +3898,7 @@ msgstr ""
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3911,7 +3916,7 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3919,7 +3924,7 @@ msgstr ""
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -3936,7 +3941,7 @@ msgid "Supplier part description"
 msgstr ""
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4783,7 +4788,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr ""
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr ""
 
@@ -5478,38 +5483,42 @@ msgstr ""
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr ""
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr ""
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr ""
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr ""
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr ""
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr ""
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr ""
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr ""
@@ -5556,11 +5565,13 @@ msgstr ""
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5577,7 +5588,7 @@ msgstr ""
 msgid "Category Path"
 msgstr ""
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5600,16 +5611,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr ""
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr ""
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr ""
@@ -5660,7 +5673,7 @@ msgstr ""
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr ""
@@ -5694,7 +5707,7 @@ msgid "Default keywords for parts in this category"
 msgstr ""
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr ""
 
@@ -5741,7 +5754,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr ""
 
@@ -5765,10 +5778,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr ""
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5876,151 +5889,159 @@ msgstr ""
 msgid "Sell multiple"
 msgstr ""
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6028,567 +6049,596 @@ msgstr ""
 msgid "Date"
 msgstr ""
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr ""
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr ""
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr ""
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr ""
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr ""
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr ""
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr ""
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr ""
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr ""
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr ""
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr ""
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr ""
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr ""
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr ""
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr ""
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr ""
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr ""
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr ""
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr ""
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr ""
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr ""
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr ""
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr ""
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr ""
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr ""
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr ""
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr ""
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr ""
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr ""
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr ""
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr ""
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr ""
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr ""
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr ""
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr ""
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr ""
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr ""
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr ""
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr ""
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr ""
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr ""
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr ""
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr ""
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr ""
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr ""
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr ""
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr ""
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7062,8 +7112,8 @@ msgstr ""
 msgid "Hide Part Details"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr ""
 
@@ -7078,8 +7128,8 @@ msgstr ""
 msgid "No supplier pricing available"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7147,7 +7197,20 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7155,65 +7218,73 @@ msgstr ""
 msgid "Last Updated"
 msgstr ""
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr ""
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr ""
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9325,7 +9396,7 @@ msgid "Project Codes"
 msgstr ""
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr ""
 
@@ -9366,14 +9437,6 @@ msgstr ""
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr ""
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9397,68 +9460,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10801,10 +10869,6 @@ msgstr ""
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/cs/LC_MESSAGES/django.po b/InvenTree/locale/cs/LC_MESSAGES/django.po
index d33f733b35..52a05c7c42 100644
--- a/InvenTree/locale/cs/LC_MESSAGES/django.po
+++ b/InvenTree/locale/cs/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:06\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Czech\n"
 "Language: cs_CZ\n"
@@ -56,8 +56,8 @@ msgstr "Zadejte datum"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr "Příloha"
 msgid "Select file to attach"
 msgstr "Vyberte soubor k přiložení"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr "Komentář"
 msgid "File comment"
 msgstr "Komentář k souboru"
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr "Duplicitní názvy nemohou existovat pod stejným nadřazeným názvem"
 msgid "Invalid choice"
 msgstr "Neplatný výběr"
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr "Název"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr "Název"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr "Chyba serveru"
 msgid "An error has been logged by the server."
 msgstr "Server zaznamenal chybu."
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "Musí být platné číslo"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -661,7 +661,7 @@ msgstr ""
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr "Kontrola procesů na pozadí se nezdařila"
 
@@ -917,14 +917,14 @@ msgstr "O InvenTree"
 msgid "Build must be cancelled before it can be deleted"
 msgstr "Sestavení musí být zrušeno před odstraněním"
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr ""
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -993,7 +993,7 @@ msgstr "Referenční číslo objednávky"
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1023,11 @@ msgstr "Příkaz sestavení pro který je toto sestavení přiděleno"
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1168,13 @@ msgid "User who issued this build order"
 msgstr "Uživatel, který vydal tento příkaz k sestavení"
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1206,7 @@ msgstr "Priorita sestavení"
 msgid "Priority of this build order"
 msgstr "Priorita tohoto příkazu k sestavení"
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1244,7 @@ msgstr "Výstup sestavení neodpovídá příkazu sestavení"
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr "Množství musí být vyšší než nula"
@@ -1258,10 +1259,10 @@ msgstr ""
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1426,7 @@ msgid "A list of build outputs must be provided"
 msgstr ""
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2032,1365 +2033,1369 @@ msgstr ""
 msgid "Select {name} file to upload"
 msgstr ""
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr ""
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr ""
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr ""
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr ""
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr ""
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr ""
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr ""
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr ""
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr ""
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr ""
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr ""
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr ""
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr ""
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr ""
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr ""
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr ""
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr ""
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr ""
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr ""
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr ""
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr "Jméno společnosti"
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr ""
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr ""
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr ""
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr "Výchozí měna"
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr ""
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr ""
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr "Stáhnout z URL"
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr ""
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr ""
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr ""
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr ""
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr ""
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr ""
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr ""
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr ""
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr ""
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr ""
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr ""
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr ""
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr ""
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr ""
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr ""
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr ""
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr ""
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr ""
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr ""
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr ""
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr ""
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr ""
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr ""
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr ""
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr ""
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr ""
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr ""
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr ""
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr ""
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr ""
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr ""
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr ""
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr ""
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr ""
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr ""
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr ""
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr ""
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr ""
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr ""
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr "Možné zakoupit"
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr "Díly jsou zakoupitelné ve výchozím nastavení"
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr "Prodejné"
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr "Díly jsou prodejné ve výchozím nastavení"
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr "Sledovatelné"
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr "Díly jsou sledovatelné ve výchozím nastavení"
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr "Nehmotné (virtuální)"
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr "Díly jsou nehmotné (virtuální) ve výchozím nastavení"
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr "Zobrazit Import v zobrazeních"
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr ""
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr "Zobrazit související díly"
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr "Zobrazit související díly pro díl"
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr "Počáteční údaje zásob"
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr "Povolit vytvoření počátečního skladu při přidání nové části"
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr "Počáteční údaje dodavatele"
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr "Povolit vytvoření počátečních dat dodavatele při přidávání nového dílu"
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr "Formát zobrazení jména dílu"
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr "Formát pro zobrazení názvu dílu"
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr "Výchozí ikona kategorie dílu"
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr "Výchozí ikona kategorie dílu (prázdné znamená bez ikony)"
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr "Minimální počet desetinných míst u cen"
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr "Minimální počet desetinných míst k zobrazení u cenových údajů"
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr "Maximální počet desetinných míst u cen"
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr "Maximální počet desetinných míst k zobrazení u cenových údajů"
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr "Použít ceny dodavatele"
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr "Přepsání historie nákupu"
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr ""
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr ""
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr ""
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr ""
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr ""
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr ""
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr ""
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr ""
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr ""
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr ""
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr ""
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr ""
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr ""
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr ""
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr ""
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr ""
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr ""
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr ""
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr ""
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr ""
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr ""
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr ""
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr "Velikost stránky"
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr "Výchozí velikost stránky pro PDF reporty"
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr "Povolit testovací reporty"
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr "Povolit generování zkušebních reportů"
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr "Připojit testovací reporty"
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr "Při tisku testovacího reportu, připojte kopii reportu k přidružené skladové položce"
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr ""
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr "Sériová čísla pro skladové položky musí být globálně unikátní"
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr "Automaticky vyplnit sériová čísla"
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr "Automaticky vyplnit sériová čísla ve formulářích"
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr "Odstranit vyčerpané zásoby"
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr "Určuje výchozí chování, když je vyčerpána skladová položka"
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr ""
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr ""
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr ""
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr ""
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr ""
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr ""
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr ""
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr ""
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr ""
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr ""
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr ""
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr ""
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr ""
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr ""
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr ""
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr ""
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr ""
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr ""
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr ""
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr ""
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr ""
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr ""
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr ""
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr ""
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr ""
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr ""
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr ""
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr ""
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr ""
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr ""
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr ""
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr ""
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr ""
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr ""
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr ""
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr ""
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr ""
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr ""
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr ""
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr ""
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr ""
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr ""
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr ""
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr ""
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr ""
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr ""
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr ""
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr ""
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr ""
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr ""
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr ""
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr ""
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr ""
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr ""
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr ""
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr ""
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr ""
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr ""
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr ""
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr ""
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr ""
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr ""
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr ""
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr ""
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr ""
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr ""
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr ""
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr ""
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr ""
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr ""
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr ""
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr ""
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr ""
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr ""
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr ""
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr ""
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr ""
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr ""
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr ""
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr ""
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr ""
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr ""
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr ""
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr ""
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr ""
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr ""
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr ""
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr ""
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr ""
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr ""
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr ""
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr ""
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr ""
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr ""
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr ""
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr ""
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr ""
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr ""
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr ""
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr ""
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr ""
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr ""
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr ""
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr ""
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr ""
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr ""
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr ""
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr ""
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr ""
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr ""
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr ""
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr ""
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr ""
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr ""
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr ""
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr ""
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr ""
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr ""
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr ""
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr ""
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr ""
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr ""
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr ""
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr ""
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr ""
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr ""
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr ""
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr ""
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr ""
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr ""
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr ""
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr ""
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr ""
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr ""
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr "Formát data"
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr ""
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr ""
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr ""
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr ""
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr ""
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr ""
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3398,23 +3403,23 @@ msgstr ""
 msgid "Price"
 msgstr "Cena"
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr ""
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr ""
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr ""
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3423,101 +3428,101 @@ msgstr ""
 msgid "Active"
 msgstr ""
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr ""
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr ""
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr ""
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr ""
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr ""
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr ""
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr ""
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr ""
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr ""
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr ""
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr ""
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr ""
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr ""
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr ""
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr ""
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr ""
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr "Id"
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr ""
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr ""
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr ""
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr ""
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr ""
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr ""
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3527,31 +3532,31 @@ msgstr ""
 msgid "Image"
 msgstr "Obrazek"
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr ""
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3806,7 +3811,7 @@ msgstr "Zvolte díl"
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3821,7 +3826,7 @@ msgid "Select manufacturer"
 msgstr "Vyberte výrobce"
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3867,7 +3872,7 @@ msgid "Parameter value"
 msgstr "Hodnota parametru"
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3893,7 +3898,7 @@ msgstr ""
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3911,7 +3916,7 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3919,7 +3924,7 @@ msgstr ""
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -3936,7 +3941,7 @@ msgid "Supplier part description"
 msgstr ""
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4783,7 +4788,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr ""
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr ""
 
@@ -5478,38 +5483,42 @@ msgstr ""
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr ""
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr ""
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr ""
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr ""
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr ""
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr ""
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr ""
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr ""
@@ -5556,11 +5565,13 @@ msgstr ""
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5577,7 +5588,7 @@ msgstr ""
 msgid "Category Path"
 msgstr ""
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5600,16 +5611,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr ""
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr ""
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr ""
@@ -5660,7 +5673,7 @@ msgstr ""
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr ""
@@ -5694,7 +5707,7 @@ msgid "Default keywords for parts in this category"
 msgstr ""
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr ""
 
@@ -5741,7 +5754,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr ""
 
@@ -5765,10 +5778,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr ""
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5876,151 +5889,159 @@ msgstr ""
 msgid "Sell multiple"
 msgstr ""
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6028,567 +6049,596 @@ msgstr ""
 msgid "Date"
 msgstr ""
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr ""
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr ""
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr ""
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr ""
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr ""
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr ""
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr ""
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr ""
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr ""
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr ""
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr ""
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr ""
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr ""
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr ""
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr ""
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr ""
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr ""
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr ""
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr ""
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr ""
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr ""
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr ""
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr ""
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr ""
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr ""
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr ""
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr ""
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr ""
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr ""
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr ""
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr ""
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr ""
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr ""
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr ""
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr ""
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr ""
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr ""
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr ""
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr ""
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr ""
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr ""
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr ""
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr ""
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr ""
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr ""
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr ""
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr ""
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7062,8 +7112,8 @@ msgstr ""
 msgid "Hide Part Details"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr ""
 
@@ -7078,8 +7128,8 @@ msgstr ""
 msgid "No supplier pricing available"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7147,7 +7197,20 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7155,65 +7218,73 @@ msgstr ""
 msgid "Last Updated"
 msgstr ""
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr ""
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr ""
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9325,7 +9396,7 @@ msgid "Project Codes"
 msgstr ""
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr ""
 
@@ -9366,14 +9437,6 @@ msgstr ""
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr ""
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9397,68 +9460,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10801,10 +10869,6 @@ msgstr ""
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/da/LC_MESSAGES/django.po b/InvenTree/locale/da/LC_MESSAGES/django.po
index 21d8252683..b0efb833d3 100644
--- a/InvenTree/locale/da/LC_MESSAGES/django.po
+++ b/InvenTree/locale/da/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:06\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Danish\n"
 "Language: da_DK\n"
@@ -56,8 +56,8 @@ msgstr "Angiv dato"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr "Vedhæftning"
 msgid "Select file to attach"
 msgstr "Vælg fil, der skal vedhæftes"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr "Kommentar"
 msgid "File comment"
 msgstr "Fil kommentar"
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr ""
 msgid "Invalid choice"
 msgstr "Ugyldigt valg"
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr "Navn"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr "Navn"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr "Serverfejl"
 msgid "An error has been logged by the server."
 msgstr "En fejl blev logget af serveren."
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "Skal være et gyldigt tal"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -661,7 +661,7 @@ msgstr ""
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr "Kontrol af baggrundstjeneste mislykkedes"
 
@@ -917,14 +917,14 @@ msgstr "Om InvenTree"
 msgid "Build must be cancelled before it can be deleted"
 msgstr "Produktion skal anulleres, før den kan slettes"
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr ""
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -993,7 +993,7 @@ msgstr "Produktionsordre reference"
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1023,11 @@ msgstr "Produktionsordre som er tildelt denne produktion"
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1168,13 @@ msgid "User who issued this build order"
 msgstr "Bruger som udstedte denne byggeordre"
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1206,7 @@ msgstr "Bygge Prioritet"
 msgid "Priority of this build order"
 msgstr "Prioritet af denne byggeordre"
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1244,7 @@ msgstr ""
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr ""
@@ -1258,10 +1259,10 @@ msgstr ""
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1426,7 @@ msgid "A list of build outputs must be provided"
 msgstr ""
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2032,1365 +2033,1369 @@ msgstr ""
 msgid "Select {name} file to upload"
 msgstr ""
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr ""
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr ""
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr ""
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr ""
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr ""
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr ""
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr ""
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr ""
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr ""
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr ""
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr ""
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr ""
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr ""
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr ""
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr ""
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr ""
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr ""
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr ""
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr ""
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr ""
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr ""
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr ""
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr ""
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr ""
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr ""
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr ""
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr ""
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr ""
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr ""
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr ""
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr ""
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr ""
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr ""
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr ""
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr ""
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr ""
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr ""
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr ""
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr ""
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr ""
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr ""
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr ""
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr ""
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr ""
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr ""
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr ""
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr ""
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr ""
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr ""
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr ""
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr ""
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr ""
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr ""
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr ""
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr ""
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr ""
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr ""
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr ""
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr ""
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr ""
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr ""
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr ""
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr ""
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr ""
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr ""
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr ""
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr ""
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr ""
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr ""
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr ""
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr ""
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr ""
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr ""
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr ""
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr ""
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr ""
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr ""
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr ""
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr ""
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr ""
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr ""
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr ""
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr ""
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr ""
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr ""
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr ""
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr ""
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr ""
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr ""
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr ""
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr ""
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr ""
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr ""
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr ""
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr ""
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr ""
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr ""
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr ""
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr ""
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr ""
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr ""
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr ""
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr ""
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr ""
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr ""
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr ""
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr ""
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr ""
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr ""
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr ""
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr ""
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr ""
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr ""
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr ""
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr ""
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr ""
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr ""
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr ""
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr ""
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr ""
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr ""
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr ""
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr ""
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr ""
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr ""
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr ""
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr ""
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr ""
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr ""
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr ""
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr ""
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr ""
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr ""
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr ""
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr ""
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr ""
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr ""
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr ""
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr ""
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr ""
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr ""
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr ""
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr ""
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr ""
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr ""
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr ""
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr ""
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr ""
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr ""
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr ""
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr ""
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr ""
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr ""
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr ""
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr ""
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr ""
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr ""
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr ""
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr ""
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr ""
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr ""
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr ""
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr ""
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr ""
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr ""
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr ""
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr ""
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr ""
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr ""
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr ""
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr ""
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr ""
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr ""
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr ""
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr ""
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr ""
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr ""
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr ""
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr ""
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr ""
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr ""
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr ""
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr ""
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr ""
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr ""
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr ""
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr ""
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr ""
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr ""
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr ""
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr ""
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr ""
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr ""
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr ""
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr ""
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr ""
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr ""
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr ""
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr ""
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr ""
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr ""
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr ""
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr ""
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr ""
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr ""
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr ""
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr ""
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr ""
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr ""
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr ""
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr ""
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr ""
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr ""
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr ""
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr ""
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr ""
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr ""
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr ""
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr ""
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr ""
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr ""
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr ""
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr ""
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr ""
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr ""
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr ""
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr ""
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr ""
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr ""
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr ""
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr ""
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr ""
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr ""
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr ""
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr ""
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr ""
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr ""
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr ""
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr ""
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr ""
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr ""
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr ""
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr ""
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr ""
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr ""
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr ""
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr ""
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr ""
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr ""
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr ""
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr ""
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr ""
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr ""
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr ""
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr ""
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr ""
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr ""
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr ""
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr ""
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr ""
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr ""
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr ""
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr ""
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3398,23 +3403,23 @@ msgstr ""
 msgid "Price"
 msgstr ""
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr ""
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr ""
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr ""
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3423,101 +3428,101 @@ msgstr ""
 msgid "Active"
 msgstr ""
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr ""
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr ""
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr ""
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr ""
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr ""
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr ""
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr ""
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr ""
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr ""
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr ""
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr ""
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr ""
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr ""
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr ""
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr ""
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr ""
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr ""
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr ""
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr ""
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr ""
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr ""
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr ""
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr ""
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3527,31 +3532,31 @@ msgstr ""
 msgid "Image"
 msgstr ""
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr ""
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3806,7 +3811,7 @@ msgstr ""
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3821,7 +3826,7 @@ msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3867,7 +3872,7 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3893,7 +3898,7 @@ msgstr ""
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3911,7 +3916,7 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3919,7 +3924,7 @@ msgstr ""
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -3936,7 +3941,7 @@ msgid "Supplier part description"
 msgstr ""
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4783,7 +4788,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr ""
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr ""
 
@@ -5478,38 +5483,42 @@ msgstr ""
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr ""
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr ""
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr ""
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr ""
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr ""
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr ""
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr ""
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr ""
@@ -5556,11 +5565,13 @@ msgstr ""
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5577,7 +5588,7 @@ msgstr ""
 msgid "Category Path"
 msgstr ""
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5600,16 +5611,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr ""
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr ""
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr ""
@@ -5660,7 +5673,7 @@ msgstr ""
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr ""
@@ -5694,7 +5707,7 @@ msgid "Default keywords for parts in this category"
 msgstr ""
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr ""
 
@@ -5741,7 +5754,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr ""
 
@@ -5765,10 +5778,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr ""
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5876,151 +5889,159 @@ msgstr ""
 msgid "Sell multiple"
 msgstr ""
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6028,567 +6049,596 @@ msgstr ""
 msgid "Date"
 msgstr ""
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr ""
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr ""
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr ""
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr ""
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr ""
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr ""
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr ""
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr ""
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr ""
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr ""
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr ""
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr ""
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr ""
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr ""
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr ""
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr ""
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr ""
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr ""
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr ""
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr ""
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr ""
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr ""
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr ""
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr ""
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr ""
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr ""
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr ""
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr ""
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr ""
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr ""
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr ""
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr ""
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr ""
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr ""
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr ""
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr ""
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr ""
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr ""
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr ""
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr ""
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr ""
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr ""
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr ""
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr ""
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr ""
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr ""
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr ""
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7062,8 +7112,8 @@ msgstr ""
 msgid "Hide Part Details"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr ""
 
@@ -7078,8 +7128,8 @@ msgstr ""
 msgid "No supplier pricing available"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7147,7 +7197,20 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7155,65 +7218,73 @@ msgstr ""
 msgid "Last Updated"
 msgstr ""
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr ""
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr ""
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9325,7 +9396,7 @@ msgid "Project Codes"
 msgstr ""
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr ""
 
@@ -9366,14 +9437,6 @@ msgstr ""
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr ""
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9397,68 +9460,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10801,10 +10869,6 @@ msgstr ""
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index f64cbd82a1..c122f3f9f0 100644
--- a/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:06\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: German\n"
 "Language: de_DE\n"
@@ -56,8 +56,8 @@ msgstr "Datum eingeben"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr "Anhang"
 msgid "Select file to attach"
 msgstr "Datei zum Anhängen auswählen"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr "Kommentar"
 msgid "File comment"
 msgstr "Datei-Kommentar"
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr "Doppelte Namen können nicht unter dem selben Elternteil existieren"
 msgid "Invalid choice"
 msgstr "Ungültige Auswahl"
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr "Name"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr "Name"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr "Serverfehler"
 msgid "An error has been logged by the server."
 msgstr "Ein Fehler wurde vom Server protokolliert."
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "Muss eine gültige Nummer sein"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -662,7 +662,7 @@ msgstr "Chinesisch (Vereinfacht)"
 msgid "Chinese (Traditional)"
 msgstr "Chinesisch (Traditionell)"
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr "Hintergrund-Prozess-Kontrolle fehlgeschlagen"
 
@@ -918,14 +918,14 @@ msgstr "Über InvenTree"
 msgid "Build must be cancelled before it can be deleted"
 msgstr "Bauauftrag muss abgebrochen werden, bevor er gelöscht werden kann"
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr "Verbrauchsmaterial"
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -994,7 +994,7 @@ msgstr "Bauauftragsreferenz"
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1024,11 +1024,11 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1169,12 +1169,13 @@ msgid "User who issued this build order"
 msgstr "Nutzer der diesen Bauauftrag erstellt hat"
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1206,7 +1207,7 @@ msgstr "Bauauftrags-Priorität"
 msgid "Priority of this build order"
 msgstr "Priorität dieses Bauauftrags"
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1244,7 +1245,7 @@ msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein"
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr "Anzahl muss größer Null sein"
@@ -1259,10 +1260,10 @@ msgstr "Objekt bauen"
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1426,7 +1427,7 @@ msgid "A list of build outputs must be provided"
 msgstr "Eine Liste von Endprodukten muss angegeben werden"
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2033,1365 +2034,1369 @@ msgstr "{name.title()} Datei"
 msgid "Select {name} file to upload"
 msgstr "{name} Datei zum Hochladen auswählen"
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr "Aktualisiert"
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr "Zeitstempel der letzten Aktualisierung"
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr "Eindeutiger Projektcode"
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr "Projektbeschreibung"
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)"
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr "Einstellungs-Wert"
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr "Wert ist keine gültige Option"
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr "Wahrheitswert erforderlich"
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr "Nur Ganzzahl eingeben"
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr "Schlüsseltext muss eindeutig sein"
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr "Keine Gruppe"
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr "Eine leere Domain ist nicht erlaubt."
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr "Ungültiger Domainname: {domain}"
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr "Kein Plugin"
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr "Neustart erforderlich"
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr "Eine Einstellung wurde geändert, die einen Neustart des Servers erfordert"
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr "Ausstehende Migrationen"
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr "Anzahl der ausstehenden Datenbankmigrationen"
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr "Name der Serverinstanz"
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr "Kurze Beschreibung der Instanz"
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr "Name der Instanz verwenden"
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr "Den Namen der Instanz in der Titelleiste verwenden"
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr "Anzeige von `Über` einschränken"
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr "Zeige das `Über` Fenster nur Administratoren"
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr "Firmenname"
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr "interner Firmenname"
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr "Basis-URL"
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr "Basis-URL für dieses Instanz"
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr "Standardwährung"
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr "Wählen Sie die Basiswährung für Preisberechnungen aus"
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr "Währungsaktualisierungsintervall"
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr "Wie oft Wechselkurse aktualisiert werden sollen (auf Null zum Deaktivieren setzen)"
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr "Tage"
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr "Währungs-Aktualisierungs-Plugin"
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr "Zu verwendendes Währungs-Aktualisierungs-Plugin"
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr "Von URL herunterladen"
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr "Herunterladen von externen Bildern und Dateien von URLs erlaubt"
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr "Download-Größenlimit"
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr "Maximal zulässige Größe für heruntergeladene Bilder"
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr "Benutzer-Agent zum Herunterladen von Daten"
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr "Überschreiben des Benutzer-Agenten, der verwendet wird, um Bilder und Dateien von externer Servern herunterzuladen (leer für die Standardeinstellung)"
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr "Bestätigung verpflichtend"
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr "Eine ausdrückliche Benutzerbestätigung für bestimmte Aktionen erfordern."
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr "Baumtiefe"
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr "Standard Ebene für Baumansicht. Tiefere Ebenen können bei Bedarf nachgeladen werden."
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr "Prüfungsintervall aktualisieren"
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr "Wie oft soll nach Updates gesucht werden? (auf 0 setzen zum Deaktivieren)"
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr "Automatische Sicherung"
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr "Automatische Sicherung der Datenbank- und Mediendateien aktivieren"
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr "Intervall für automatische Sicherung"
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr "Anzahl der Tage zwischen automatischen Sicherungen"
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr "Aufgabenlöschinterval"
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr "Ergebnisse der Hintergrundaufgabe werden nach der angegebenen Anzahl von Tagen gelöscht"
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr "Löschintervall für Fehlerprotokolle"
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr "Fehlerprotokolle werden nach der angegebenen Anzahl von Tagen gelöscht"
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr "Löschintervall für Benachrichtigungen"
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr "Benutzerbenachrichtigungen werden nach der angegebenen Anzahl von Tagen gelöscht"
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr "Bacode-Feature verwenden"
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr "Barcode-Scanner Unterstützung im Webinterface aktivieren"
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr "Barcode-Eingabeverzögerung"
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr "Verzögerungszeit bei Barcode-Eingabe"
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr "Barcode Webcam-Unterstützung"
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr "Barcode-Scannen über Webcam im Browser erlauben"
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr "Artikelrevisionen"
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr "Revisions-Feld für Artikel aktivieren"
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr "IPN Regex"
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr "RegEx Muster für die Zuordnung von Teil-IPN"
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr "Mehrere Artikel mit gleicher IPN erlaubt"
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr "Mehrere Artikel mit gleicher IPN erlaubt"
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr "Ändern von IPN erlaubt"
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr "Ändern der IPN während des Bearbeiten eines Teils erlaubt"
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr "Teil-Stückliste kopieren"
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr "Stückliste von Teil kopieren wenn das Teil dupliziert wird "
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr "Teil-Parameter kopieren"
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr "Parameter-Daten für dieses Teil kopieren wenn das Teil dupliziert wird"
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr "Teil-Testdaten kopieren"
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr "Test-Daten für dieses Teil kopieren wenn das Teil dupliziert wird"
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr "Kategorie-Parametervorlage kopieren"
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird"
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr "Vorlage"
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr "Teile sind standardmäßig Vorlagen"
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr "Baugruppe"
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden"
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr "Komponente"
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr "Teile können standardmäßig in Baugruppen benutzt werden"
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr "Kaufbar"
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr "Artikel sind grundsätzlich kaufbar"
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr "Verkäuflich"
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr "Artikel sind grundsätzlich verkaufbar"
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr "Nachverfolgbar"
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr "Artikel sind grundsätzlich verfolgbar"
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr "Virtuell"
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr "Teile sind grundsätzlich virtuell"
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr "Import in Ansichten anzeigen"
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr "Importassistent in einigen Teil-Ansichten anzeigen"
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr "Verwandte Teile anzeigen"
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr "Verwandte Teile eines Teils anzeigen"
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr "Initialer Lagerbestand"
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr "Erstellen von Lagerbestand beim Hinzufügen eines neuen Teils erlauben"
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr "Initiale Lieferantendaten"
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr "Erstellen von Lieferantendaten beim Hinzufügen eines neuen Teils erlauben"
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr "Anzeigeformat für Teilenamen"
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr "Format für den Namen eines Teiles"
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr "Standardsymbol der Teilkategorie"
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr "Standardsymbol der Teilkategorie (leer bedeutet kein Symbol)"
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr "Parameter Einheiten durchsetzen"
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr "Wenn Einheiten angegeben werden, müssen die Parameterwerte mit den angegebenen Einheiten übereinstimmen"
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr "Dezimalstellen für minimalen Preis"
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr "Mindestanzahl der Dezimalstellen bei der Darstellung der Preisdaten"
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr "Dezimalstellen für maximalen Preis"
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr "Maximale Anzahl der Dezimalstellen bei der Darstellung der Preisdaten"
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr "Zulieferer-Preise verwenden"
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr "Lieferanten-Staffelpreise in die Gesamt-Preisberechnungen einbeziehen"
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr "Kaufverlauf überschreiben"
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr "Historische Bestellungspreise überschreiben die Lieferanten-Staffelpreise"
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr "Lagerartikel-Preis verwenden"
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr "Preise aus manuell eingegebenen Lagerdaten für Preisberechnungen verwenden"
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr "Lagerartikelpreis Alter"
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr "Lagerartikel, die älter als diese Anzahl an Tagen sind, von der Preisberechnung ausschließen"
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr "Variantenpreise verwenden"
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr "Variantenpreise in die Gesamt-Preisberechnungen einbeziehen"
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr "Nur aktive Varianten"
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr "Nur aktive Variantenteile zur Berechnung der Variantenbepreisung verwenden"
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr "Intervall für Neuberechnung von Preisen"
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr "Anzahl der Tage bis die Teile-Preisberechnungen automatisch aktualisiert werden"
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr "Interne Preise"
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr "Interne Preise für Teile aktivieren"
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr "Interne Preisüberschreibung"
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr "Falls verfügbar, überschreiben interne Preise Preispannenberechnungen"
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr "Labeldruck aktivieren"
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr "Labeldruck über die Website aktivieren"
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr "Label Bild DPI"
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr "DPI-Auflösung bei der Erstellung von Bilddateien für Etikettendruck-Plugins"
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr "Berichte aktivieren"
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr "Berichterstellung aktivieren"
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr "Entwickler-Modus"
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr "Berichte im Entwickler-Modus generieren (als HTML)"
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr "Seitengröße"
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr "Standardseitenformat für PDF-Bericht"
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr "Testberichte aktivieren"
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr "Erstellung von Test-Berichten aktivieren"
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr "Testberichte anhängen"
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr "Beim Drucken eines Testberichts dem zugehörigen Lagerbestand eine Kopie des Testberichts beifügen"
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr "Global einzigartige Seriennummern"
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr "Seriennummern für Lagerartikel müssen global eindeutig sein"
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr "Seriennummern automatisch ausfüllen"
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr "Seriennummern in Formularen automatisch ausfüllen"
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr "Erschöpften Lagerartikel löschen"
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr "Legt das Standardverhalten fest, wenn ein Lagerartikel erschöpft ist"
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr "Losnummer Vorlage"
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr "Vorlage für die Generierung von Standard-Losnummern für Lagerbestände"
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr "Bestands-Ablauf"
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr "Ablaufen von Bestand ermöglichen"
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr "Abgelaufenen Bestand verkaufen"
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr "Verkauf von abgelaufenem Bestand erlaubt"
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr "Bestands-Stehzeit"
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr "Anzahl an Tagen, an denen Bestand als abgestanden markiert wird, bevor sie ablaufen"
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr "Abgelaufenen Bestand verbauen"
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr "Verbauen von abgelaufenen Bestand erlaubt"
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr "Bestands-Eigentümerkontrolle"
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren"
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr "Standardsymbol für Lagerort"
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr "Standardsymbol für Lagerstandort (leer bedeutet kein Symbol)"
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr "Zeige installierte Lagerartikel"
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr "Anzeige der installierten Lagerartikel in Bestandstabellen"
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr "Bauauftragsreferenz-Muster"
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Bauaufträge"
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr "Rücksendungen aktivieren"
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr "Aktivieren der Rücksendung-Funktion in der Benutzeroberfläche"
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr "Referenz Muster für Rücksendungen"
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Rücksendungen"
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr "Abgeschlossene Rücksendungen bearbeiten"
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr "Bearbeitung von Rücksendungen nach Abschluss erlauben"
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr "Auftragsreferenz-Muster"
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Aufträge"
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr "Auftrag Standardsendung"
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr "Erstelle eine Standardsendung für Aufträge"
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr "Abgeschlossene Verkaufsaufträge bearbeiten"
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr "Bearbeitung von Verkaufsaufträgen nach Versand oder Abschluss erlauben"
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr "Bestellungsreferenz-Muster"
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Bestellungen"
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr "Abgeschlossene Einkaufsaufträge bearbeiten"
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr "Bearbeitung von Einkaufsaufträgen nach Versand oder Abschluss erlauben"
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr "Passwort vergessen aktivieren"
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr "Passwort-vergessen-Funktion auf den Anmeldeseiten aktivieren"
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr "Registrierung erlauben"
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr "Selbstregistrierung für Benutzer auf den Anmeldeseiten aktivieren"
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr "SSO aktivieren"
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr "SSO auf den Anmeldeseiten aktivieren"
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr "SSO Selbstregistrierung aktivieren"
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr "Selbstregistrierung über SSO für Benutzer auf den Anmeldeseiten aktivieren"
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr "Email-Adresse erforderlich"
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr "Benutzer müssen bei der Registrierung eine E-Mail angeben"
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr "SSO-Benutzer automatisch ausfüllen"
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr "Benutzer-Details automatisch aus SSO-Konto ausfüllen"
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr "E-Mail zweimal"
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr "Bei der Registrierung den Benutzer zweimal nach der E-Mail-Adresse fragen"
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr "Passwort zweimal"
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr "Bei der Registrierung den Benutzer zweimal nach dem Passwort fragen"
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr "Erlaubte Domains"
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr "Anmeldung auf bestimmte Domänen beschränken (kommagetrennt, beginnend mit @)"
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr "Gruppe bei Registrierung"
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr "Gruppe der neue Benutzer bei der Registrierung zugewiesen werden"
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr "MFA erzwingen"
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr "Benutzer müssen Multifaktor-Authentifizierung verwenden."
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr "Plugins beim Start prüfen"
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr "Beim Start überprüfen, ob alle Plugins installiert sind - Für Container aktivieren"
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr "URL-Integration aktivieren"
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr "Plugins zum Hinzufügen von URLs aktivieren"
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr "Navigations-Integration aktivieren"
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr "Plugins zur Integration in die Navigation aktivieren"
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr "App-Integration aktivieren"
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr "Plugins zum Hinzufügen von Apps aktivieren"
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr "Terminplan-Integration aktivieren"
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr "Geplante Aufgaben aktivieren"
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr "Ereignis-Integration aktivieren"
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr "Plugins ermöglichen auf interne Ereignisse zu reagieren"
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr "Projektcodes aktivieren"
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr "Aktiviere Projektcodes für die Verfolgung von Projekten"
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr "Inventurfunktionen"
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr "Inventur-Funktionen zur Aufzeichnung von Lagerbeständen und zur Berechnung des Lagerwerts aktivieren"
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr "Externe Standorte ausschließen"
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr "Lagerartikeln in externen Standorten in der Berechnungen zur Bestandsaufnahme ausschließen"
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr "Automatische Inventur-Periode"
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr "Anzahl der Tage zwischen automatischen Bestandsaufnahmen (zum Deaktivieren auf Null setzen)"
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr "Löschintervall für Berichte"
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr "Inventurberichte werden nach der angegebenen Anzahl von Tagen gelöscht"
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr "Vollständige Namen von Benutzern anzeigen"
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr "Vollständigen Namen von Benutzern anstatt Benutzername anzeigen"
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)"
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr "Inaktive Teile ausblenden"
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr "Ausblenden inaktiver Teile in den auf der Startseite angezeigten Ergebnissen"
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr "Abonnierte Teile anzeigen"
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr "Zeige abonnierte Teile auf der Startseite"
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr "Abonnierte Kategorien anzeigen"
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr "Zeige abonnierte Teilkategorien auf der Startseite"
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr "Neueste Teile anzeigen"
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr "Zeige neueste Teile auf der Startseite"
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr "Nicht validierte Stücklisten anzeigen"
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr "Zeige Stücklisten, die noch nicht validiert sind, auf der Startseite"
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr "Neueste Bestandänderungen anzeigen"
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr "Zeige zuletzt geänderte Lagerbestände auf der Startseite"
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr "Niedrigen Bestand anzeigen"
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr "Zeige geringen Bestand auf der Startseite"
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr "Lerren Bestand anzeigen"
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr "Zeige aufgebrauchte Lagerartikel auf der Startseite"
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr "Benötigten Bestand anzeigen"
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr "Zeige Bestand für Bauaufträge auf der Startseite"
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr "Abgelaufenen Bestand anzeigen"
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr "Zeige abgelaufene Lagerbestände auf der Startseite"
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr "Alten Bestand anzeigen"
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr "Zeige überfällige Lagerartikel auf der Startseite"
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr "Ausstehende Bauaufträge anzeigen"
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr "Zeige ausstehende Bauaufträge auf der Startseite"
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr "Zeige überfällige Bauaufträge"
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr "Zeige überfällige Bauaufträge auf der Startseite"
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr "Ausstehende POs anzeigen"
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr "Zeige ausstehende POs auf der Startseite"
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr "Überfällige POs anzeigen"
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr "Zeige überfällige POs auf der Startseite"
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr "Ausstehende SOs anzeigen"
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr "Zeige ausstehende SOs auf der Startseite"
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr "Überfällige SOs anzeigen"
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr "Zeige überfällige SOs auf der Startseite"
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr "Ausstehende Versandaufträge anzeigen"
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr "Ausstehende Versandaufträge auf der Startseite anzeigen"
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr "Zeige Neuigkeiten"
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr "Neuigkeiten auf der Startseite anzeigen"
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr "Label inline anzeigen"
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr "PDF-Labels im Browser anzeigen, anstatt als Datei herunterzuladen"
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr "Standard-Etikettendrucker"
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr "Einen standardmäßig ausgewählten Etikettendrucker konfigurieren"
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr "Berichte inline anzeigen"
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr "PDF-Berichte im Browser anzeigen, anstatt als Datei herunterzuladen"
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr "Teile suchen"
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr "Teile in der Suchvorschau anzeigen"
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr "Zulieferteile durchsuchen"
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr "Zuliefererteile in der Suchvorschau anzeigen"
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr "Herstellerteile durchsuchen"
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr "Herstellerteile in der Suchvorschau anzeigen"
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr "Inaktive Teile ausblenden"
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr "Inaktive Teile in der Suchvorschau ausblenden"
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr "Kategorien durchsuchen"
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr "Teilekategorien in der Suchvorschau anzeigen"
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr "Bestand durchsuchen"
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr "Lagerartikel in Suchvorschau anzeigen"
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr "Nicht verfügbare Artikel ausblenden"
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr "Nicht verfügbare Lagerartikel aus der Suchvorschau ausschließen"
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr "Lagerorte durchsuchen"
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr "Lagerorte in Suchvorschau anzeigen"
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr "Firmen durchsuchen"
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr "Firmen in der Suchvorschau anzeigen"
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr "Bauaufträge durchsuchen"
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr "Bauaufträge in der Suchvorschau anzeigen"
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr "Bestellungen durchsuchen"
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr "Bestellungen in der Suchvorschau anzeigen"
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr "Inaktive Bestellungen ausblenden"
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr "Inaktive Bestellungen in der Suchvorschau ausblenden"
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr "Aufträge durchsuchen"
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr "Aufträge in der Suchvorschau anzeigen"
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr "Inaktive Aufträge ausblenden"
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr "Inaktive Aufträge in der Suchvorschau ausblenden"
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr "Suche nach Rücksendungen"
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr "Rücksendungen in der Suchvorschau anzeigen"
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr "Inaktive Rücksendungen ausblenden"
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr "Inaktive Rücksendungen in der Suchvorschau ausblenden"
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr "Anzahl Suchergebnisse"
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr "Anzahl der Ergebnisse, die in der Vorschau pro Sektion angezeigt werden sollen"
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr "Regex Suche"
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr "Reguläre Ausdrücke in Suchabfragen aktivieren"
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr "Ganzes Wort suchen"
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr "Suchabfragen liefern Ergebnisse für ganze Wortkombinationen"
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr "zeige Bestand in Eingabemasken"
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken"
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr "Esc-Taste schließt Formulare"
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr "Benutze die Esc-Taste, um Formulare zu schließen"
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr "Fixierter Navigationsleiste"
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr "Position der Navigationsleiste am oberen Bildschirmrand fixieren"
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr "Datumsformat"
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr "Bevorzugtes Format für die Anzeige von Daten"
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr "Teilzeitplanung"
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr "Zeige Zeitplanung für Teile"
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr "Inventur"
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr "Zeigt Inventur-Informationen an (falls die Inventurfunktion aktiviert ist)"
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr "Zeichenkettenlänge in Tabellen"
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr "Maximale Länge der Zeichenketten, die in Tabellenansichten angezeigt werden"
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr "Standardvorlage für Teilebeschriftung"
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr "Die Teil-Etikettenvorlage, die automatisch ausgewählt werden soll"
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr "Lagerartikel-Standardvorlage"
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr "Die Lagerartikel-Etikettenvorlage soll automatisch ausgewählt werden"
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr "Standardetikettenvorlage für Lagerstandort"
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr "Die Lagerstandort-Etikettenvorlage, die automatisch ausgewählt werden soll"
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr "Fehlerberichte empfangen"
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr "Benachrichtigungen bei Systemfehlern erhalten"
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr "Preisstaffelungs Anzahl"
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3399,23 +3404,23 @@ msgstr "Preisstaffelungs Anzahl"
 msgid "Price"
 msgstr "Preis"
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr "Stückpreis für die angegebene Anzahl"
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr "Endpunkt"
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr "Endpunkt, an dem dieser Webhook empfangen wird"
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr "Name für diesen Webhook"
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3424,101 +3429,101 @@ msgstr "Name für diesen Webhook"
 msgid "Active"
 msgstr "Aktiv"
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr "Ist dieser Webhook aktiv"
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr "Token"
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr "Token für Zugang"
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr "Geheimnis"
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr "Shared Secret für HMAC"
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr "Nachrichten-ID"
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr "Eindeutige Kennung für diese Nachricht"
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr "Host"
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr "Host von dem diese Nachricht empfangen wurde"
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr "Kopfzeile"
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr "Header dieser Nachricht"
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr "Body"
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr "Body dieser Nachricht"
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr "Endpunkt, über den diese Nachricht empfangen wurde"
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr "Bearbeitet"
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr "Wurde die Arbeit an dieser Nachricht abgeschlossen?"
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr "ID"
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr "Titel"
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr "Veröffentlicht"
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr "Autor"
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr "Zusammenfassung"
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr "Gelesen"
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr "Wurde diese Nachricht gelesen?"
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3528,31 +3533,31 @@ msgstr "Wurde diese Nachricht gelesen?"
 msgid "Image"
 msgstr "Bild"
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr "Bilddatei"
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr "Einheitsname muss eine gültige Kennung sein"
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr "Einheitsname"
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr "Symbol"
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr "Optionales Einheitssymbol"
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr "Definition"
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr "Einheitsdefinition"
 
@@ -3807,7 +3812,7 @@ msgstr "Teil auswählen"
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3822,7 +3827,7 @@ msgid "Select manufacturer"
 msgstr "Hersteller auswählen"
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3868,7 +3873,7 @@ msgid "Parameter value"
 msgstr "Parameterwert"
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3894,7 +3899,7 @@ msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren"
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3912,7 +3917,7 @@ msgid "Select supplier"
 msgstr "Zulieferer auswählen"
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3920,7 +3925,7 @@ msgstr "Zulieferer auswählen"
 msgid "SKU"
 msgstr "SKU (Lagerbestandseinheit)"
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr "Lagerbestandseinheit (SKU) des Zulieferers"
 
@@ -3937,7 +3942,7 @@ msgid "Supplier part description"
 msgstr "Zuliefererbeschreibung des Teils"
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4784,7 +4789,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr "Nur verkaufbare Teile können einem Auftrag zugewiesen werden"
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr "Verkaufspreis"
 
@@ -5479,38 +5484,42 @@ msgstr "Stückpreis für {part} auf {price} aktualisiert"
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr "{part} Stückpreis auf {price} und Menge auf {qty} aktualisiert"
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr "Teil-ID"
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr "Name des Teils"
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr "Beschreibung des Teils"
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr "IPN (Interne Produktnummer)"
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr "Version"
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr "Schlüsselwörter"
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr "Kategorie-ID"
@@ -5557,11 +5566,13 @@ msgstr "Benutzt in"
 msgid "Building"
 msgstr "Im Bau"
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr "Minimale Kosten"
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr "Maximale Kosten"
 
@@ -5578,7 +5589,7 @@ msgstr "Name des übergeordneten Teils"
 msgid "Category Path"
 msgstr "Pfad zur Kategorie"
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5601,16 +5612,18 @@ msgstr "Stücklisten-Position ID"
 msgid "Parent IPN"
 msgstr "Übergeordnete IPN"
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr "Teil IPN"
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr "Niedrigster Preis"
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr "Höchster Preis"
@@ -5661,7 +5674,7 @@ msgstr "Verfügbarer Bestand"
 msgid "Input quantity for price calculation"
 msgstr "Menge für die Preisberechnung"
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr "Teil-Kategorie"
@@ -5695,7 +5708,7 @@ msgid "Default keywords for parts in this category"
 msgstr "Standard-Stichworte für Teile dieser Kategorie"
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr "Symbol"
 
@@ -5742,7 +5755,7 @@ msgstr "Teil mit diesem Namen, IPN und Revision existiert bereits."
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr "Strukturellen Teilekategorien können keine Teile zugewiesen werden!"
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr "Name des Teils"
 
@@ -5766,10 +5779,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5877,151 +5890,159 @@ msgstr "Letzte Inventur"
 msgid "Sell multiple"
 msgstr "Mehrere verkaufen"
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr "Währung für die Berechnung der Preise im Cache"
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr "Minimale Stücklisten Kosten"
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr "Minimale Kosten für Teile"
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr "Maximale Stücklisten Kosten"
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr "Maximale Kosten für Teile"
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr "Minimale Einkaufskosten"
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr "Minimale historische Kaufkosten"
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr "Maximale Einkaufskosten"
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr "Maximale historische Einkaufskosten"
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr "Minimaler interner Preis"
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr "Minimale Kosten basierend auf den internen Staffelpreisen"
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr "Maximaler interner Preis"
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr "Maximale Kosten basierend auf internen Preisstaffeln"
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr "Minimaler Lieferantenpreis"
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr "Mindestpreis für Teil von externen Lieferanten"
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr "Maximaler Lieferantenpreis"
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr "Maximaler Preis für Teil von externen Lieferanten"
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr "Minimale Variantenkosten"
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr "Berechnete minimale Kosten für Variantenteile"
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr "Maximale Variantenkosten"
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr "Berechnete maximale Kosten für Variantenteile"
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr "Berechnete Mindestkosten"
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr "Berechnete Maximalkosten"
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr "Mindestverkaufspreis"
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr "Mindestverkaufspreis basierend auf Staffelpreisen"
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr "Maximaler Verkaufspreis"
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr "Maximalverkaufspreis basierend auf Staffelpreisen"
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr "Mindestverkaufskosten"
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr "Minimaler historischer Verkaufspreis"
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr "Maximale Verkaufskosten"
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr "Maximaler historischer Verkaufspreis"
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr "Teil für die Inventur"
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr "Stückzahl"
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr "Anzahl einzelner Bestandseinträge zum Zeitpunkt der Inventur"
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr "Insgesamt verfügbarer Lagerbestand zum Zeitpunkt der Inventur"
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6029,567 +6050,596 @@ msgstr "Insgesamt verfügbarer Lagerbestand zum Zeitpunkt der Inventur"
 msgid "Date"
 msgstr "Datum"
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr "Datum der Inventur"
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr "Zusätzliche Notizen"
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr "Benutzer, der diese Inventur durchgeführt hat"
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr "Mindestbestandswert"
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr "Geschätzter Mindestwert des vorhandenen Bestands"
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr "Maximaler Bestandswert"
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr "Geschätzter Maximalwert des vorhandenen Bestands"
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr "Bericht"
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr "Inventur-Berichtsdatei (intern generiert)"
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr "Anzahl der Teile"
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr "Anzahl der Teile, die von der Inventur abgedeckt werden"
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr "Benutzer, der diesen Inventurbericht angefordert hat"
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr "Test-Vorlagen können nur für verfolgbare Teile angelegt werden"
 
-#: part/models.py:3224
+#: part/models.py:3245
 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:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr "Test-Name"
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr "Namen für diesen Test eingeben"
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr "Test-Beschreibung"
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr "Beschreibung für diesen Test eingeben"
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr "Benötigt"
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr "Muss dieser Test erfolgreich sein?"
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr "Erfordert Wert"
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr "Muss für diesen Test ein Wert für das Test-Ergebnis eingetragen werden?"
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr "Anhang muss eingegeben werden"
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr "Muss für diesen Test ein Anhang für das Test-Ergebnis hinzugefügt werden?"
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr "Checkbox-Parameter können keine Einheiten haben"
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr "Auswahl muss einzigartig sein"
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr "Vorlagen-Name des Parameters muss eindeutig sein"
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr "Name des Parameters"
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr "Parameter-Beschreibung"
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr "Checkbox"
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr "Ist dieser Parameter eine Checkbox?"
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr "Auswahlmöglichkeiten"
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr "Ausgangsteil"
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr "Parameter Vorlage"
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr "Wert"
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr "Parameter Wert"
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr "Standard-Wert"
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr "Standard Parameter Wert"
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr "Teilnummer oder Teilname"
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr "Eindeutige Teil-ID"
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr "IPN-Wert des Teils"
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr "Stufe"
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr "Stücklistenebene"
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr "Stücklisten-Position"
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr "Ausgangsteil auswählen"
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr "Untergeordnetes Teil"
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr "Teil für die Nutzung in der Stückliste auswählen"
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil"
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr "Diese Stücklisten-Position ist optional"
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr "Diese Stücklisten-Position ist ein Verbrauchsartikel (sie wird nicht in Bauaufträgen verfolgt)"
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr "Überschuss"
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr "Geschätzter Ausschuss (absolut oder prozentual)"
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr "Referenz der Postion auf der Stückliste"
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr "Notizen zur Stücklisten-Position"
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr "Prüfsumme"
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr "Prüfsumme der Stückliste"
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr "überprüft"
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr "Diese Stücklistenposition wurde validiert"
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr "Wird vererbt"
 
-#: part/models.py:3792
+#: part/models.py:3813
 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:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr "Varianten zulassen"
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr "Bestand von Varianten kann für diese Stücklisten-Position verwendet werden"
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr "Menge muss eine Ganzzahl sein"
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr "Zuliefererteil muss festgelegt sein"
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr "Stücklisten Ersatzteile"
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr "Ersatzteil kann nicht identisch mit dem Hauptteil sein"
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr "Übergeordnete Stücklisten Position"
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr "Ersatzteil"
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr "Teil 1"
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr "Teil 2"
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr "verknüpftes Teil auswählen"
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr "Teil-Beziehung kann nicht zwischen einem Teil und sich selbst erstellt werden"
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr "Doppelte Beziehung existiert bereits"
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr "Kaufwährung dieses Lagerartikels"
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr "Keine Teile ausgewählt"
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr "Kategorie auswählen"
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr "Originalteil"
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr "Originalteil zum Duplizieren auswählen"
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr "Bild kopieren"
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr "Bild vom Originalteil kopieren"
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr "Stückliste kopieren"
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr "Stückliste vom Originalteil kopieren"
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr "Parameter kopieren"
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr "Parameterdaten vom Originalteil kopieren"
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr "Anmerkungen kopieren"
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr "Start-Bestandsmenge"
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr "Initiale Lagermenge für dieses Teil. Wenn die Menge null ist, wird kein Lagerbestand hinzugefügt."
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr "Initialer Lagerort"
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr "Lagerstandort für dieses Teil angeben"
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr "Lieferant auswählen (oder leer lassen, um zu überspringen)"
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr "Hersteller auswählen (oder leer lassen, um zu überspringen)"
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr "Hersteller-Teilenummer"
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr "Ausgewählte Firma ist kein gültiger Lieferant"
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr "Ausgewählte Firma ist kein gültiger Hersteller"
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr "Herstellerteil mit dieser MPN existiert bereits"
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr "Lieferantenteil mit dieser SKU existiert bereits"
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr "Teil duplizieren"
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr "Initiale Daten von anderem Teil kopieren"
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr "Initialer Lagerbestand"
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr "Erstelle Teil mit Ausgangsbestand"
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr "Lieferanteninformationen"
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr "Lieferanteninformationen zu diesem Teil hinzufügen"
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr "Kategorieparameter kopieren"
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr "Parametervorlagen aus der ausgewählten Teilkategorie kopieren"
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr "Inventurbericht auf ein bestimmtes Teil und alle Variantenteile beschränken"
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr "Inventurbericht auf eine bestimmte Teilekategorie und alle untergeordneten Kategorien beschränken"
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr "Inventurbericht auf einen bestimmten Lagerort und alle untergeordneten Lagerorte beschränken"
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr "Externen Bestand ausschließen"
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr "Lagerartikel an externen Orten ausschließen"
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr "Bericht generieren"
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr "Erstelle Berichtsdatei mit berechneten Inventurdaten"
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr "Teile aktualisieren"
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr "Angegebene Teile mit berechneten Inventurdaten aktualisieren"
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr "Inventur-Funktionalität ist nicht aktiviert"
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr "Aktualisieren"
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr "Preis für dieses Teil aktualisieren"
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr "Teil auswählen, von dem Stückliste kopiert wird"
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr "Bestehende Daten entfernen"
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr "Bestehende Stücklisten-Positionen vor dem Kopieren entfernen"
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr "Vererbtes einschließen"
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr "Stücklisten-Positionen einbeziehen, die von Vorlage-Teilen geerbt werden"
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr "Ungültige Zeilen überspringen"
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr "Aktiviere diese Option, um ungültige Zeilen zu überspringen"
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr "Ersatzteile kopieren"
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr "Ersatzteile beim Duplizieren von Stücklisten-Positionen kopieren"
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr "Bestehende Stückliste löschen"
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr "Bestehende Stücklisten-Positionen vor dem Importieren entfernen"
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr "Keine Teilspalte angegeben"
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr "Mehrere übereinstimmende Teile gefunden"
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr "Keine passenden Teile gefunden"
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr "Teil ist nicht als Komponente angelegt"
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr "Menge nicht angegeben"
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr "Ungültige Menge"
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr "Mindestens eine Stückliste-Position ist erforderlich"
 
@@ -7063,8 +7113,8 @@ msgstr "Keine passenden Bilder gefunden"
 msgid "Hide Part Details"
 msgstr "Teildetails ausblenden"
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr "Zulieferer-Preise"
 
@@ -7079,8 +7129,8 @@ msgstr "Stückpreis"
 msgid "No supplier pricing available"
 msgstr "Keine Zulieferer-Preise verfügbar"
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr "Stücklistenpreise"
 
@@ -7148,7 +7198,20 @@ msgstr "Preisübersicht"
 msgid "Refresh Part Pricing"
 msgstr "Preis aktualisieren"
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7156,65 +7219,73 @@ msgstr "Preis aktualisieren"
 msgid "Last Updated"
 msgstr "Zuletzt aktualisiert"
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr "Preiskategorie"
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr "Minimum"
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr "Maximum"
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr "Interne Preise"
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr "Kaufhistorie"
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr "Variantenpreise"
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr "Gesamtpreise"
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr "Verkaufshistorie"
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr "Verkaufspreisdaten sind für diesen Teil nicht verfügbar"
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr "Preisspanne für diesen Teil ist nicht verfügbar."
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr "Zur Übersicht gehen"
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr "Interne Preisspanne hinzufügen"
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr "Verkaufspreise"
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr "Verkaufspreisstaffel hinzufügen"
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9326,7 +9397,7 @@ msgid "Project Codes"
 msgstr ""
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr ""
 
@@ -9367,14 +9438,6 @@ msgstr "Benutzereinstellungen bearbeiten"
 msgid "Rate"
 msgstr "Kurs"
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr "Bearbeiten"
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9398,68 +9461,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr "Gruppe"
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr "Keine Kategorie-Parametervorlagen gefunden"
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr "Vorlage bearbeiten"
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr "Vorlage löschen"
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr "Kategorieparametervorlage löschen"
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr "Kategorieparametervorlage anlegen"
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr "Teilparametervorlage anlegen"
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10802,10 +10870,6 @@ msgstr "Fortschritt"
 msgid "No user information"
 msgstr "Keine Benutzerinformation"
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr "Gruppe"
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po
index 1bce6145a9..6e9553c2c1 100644
--- a/InvenTree/locale/el/LC_MESSAGES/django.po
+++ b/InvenTree/locale/el/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:06\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Greek\n"
 "Language: el_GR\n"
@@ -56,8 +56,8 @@ msgstr "Εισάγετε ημερομηνία"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr "Συνημμένο"
 msgid "Select file to attach"
 msgstr "Επιλέξτε αρχείο για επισύναψη"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr "Σχόλιο"
 msgid "File comment"
 msgstr "Σχόλιο αρχείου"
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr "Διπλότυπα ονόματα δεν μπορούν να υπάρχ
 msgid "Invalid choice"
 msgstr "Μη έγκυρη επιλογή"
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr "Όνομα"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr "Όνομα"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr "Σφάλμα διακομιστή"
 msgid "An error has been logged by the server."
 msgstr "Ένα σφάλμα έχει καταγραφεί από το διακομιστή."
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "Πρέπει να είναι αριθμός"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -661,7 +661,7 @@ msgstr "Κινέζικα (απλοποιημένα)"
 msgid "Chinese (Traditional)"
 msgstr "Κινέζικα (Παραδοσιακά)"
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr "Ο έλεγχος εργασίας στο παρασκήνιο απέτυχε"
 
@@ -917,14 +917,14 @@ msgstr "Σχετικά με το InvenTree"
 msgid "Build must be cancelled before it can be deleted"
 msgstr "Η έκδοση πρέπει να ακυρωθεί πριν διαγραφεί"
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr ""
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -993,7 +993,7 @@ msgstr "Αναφορά Παραγγελίας Κατασκευής"
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1023,11 @@ msgstr "BuildOrder στην οποία έχει δοθεί αυτή η κατα
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1168,13 @@ msgid "User who issued this build order"
 msgstr "Χρήστης που εξέδωσε αυτήν την παραγγελία κατασκευής"
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1206,7 @@ msgstr ""
 msgid "Priority of this build order"
 msgstr ""
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1244,7 @@ msgstr "Η έξοδος κατασκευής δεν ταιριάζει με τη
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0"
@@ -1258,10 +1259,10 @@ msgstr ""
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1426,7 @@ msgid "A list of build outputs must be provided"
 msgstr ""
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2032,1365 +2033,1369 @@ msgstr ""
 msgid "Select {name} file to upload"
 msgstr ""
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr ""
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr ""
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr ""
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr ""
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr ""
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr ""
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr ""
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr ""
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr ""
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr ""
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr ""
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr ""
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr ""
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr ""
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr ""
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr ""
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr ""
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr ""
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr ""
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr ""
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr ""
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr ""
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr ""
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr ""
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr ""
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr ""
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr ""
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr ""
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr ""
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr ""
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr ""
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr ""
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr ""
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr ""
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr ""
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr ""
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr ""
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr ""
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr ""
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr ""
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr ""
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr ""
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr ""
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr ""
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr ""
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr ""
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr ""
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr ""
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr ""
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr ""
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr ""
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr ""
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr ""
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr ""
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr ""
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr ""
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr ""
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr ""
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr ""
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr ""
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr ""
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr ""
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr ""
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr ""
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr ""
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr ""
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr ""
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr ""
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr ""
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr ""
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr ""
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr ""
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr ""
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr ""
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr ""
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr ""
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr ""
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr ""
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr ""
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr ""
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr ""
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr ""
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr ""
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr ""
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr ""
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr ""
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr ""
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr ""
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr ""
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr ""
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr ""
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr ""
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr ""
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr ""
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr ""
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr ""
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr ""
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr ""
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr ""
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr ""
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr ""
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr ""
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr ""
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr ""
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr ""
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr ""
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr ""
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr ""
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr ""
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr ""
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr ""
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr ""
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr ""
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr ""
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr ""
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr ""
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr ""
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr ""
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr ""
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr ""
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr ""
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr ""
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr ""
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr ""
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr ""
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr ""
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr ""
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr ""
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr ""
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr ""
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr ""
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr ""
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr ""
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr ""
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr ""
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr ""
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr ""
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr ""
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr ""
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr ""
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr ""
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr ""
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr ""
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr ""
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr ""
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr ""
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr ""
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr ""
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr ""
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr ""
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr ""
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr ""
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr ""
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr ""
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr ""
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr ""
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr ""
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr ""
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr ""
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr ""
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr ""
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr ""
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr ""
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr ""
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr ""
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr ""
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr ""
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr ""
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr ""
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr ""
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr ""
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr ""
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr ""
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr ""
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr ""
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr ""
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr ""
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr ""
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr ""
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr ""
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr ""
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr ""
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr ""
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr ""
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr ""
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr ""
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr ""
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr ""
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr ""
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr ""
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr ""
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr ""
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr ""
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr ""
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr ""
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr ""
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr ""
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr ""
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr ""
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr ""
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr ""
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr ""
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr ""
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr ""
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr ""
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr ""
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr ""
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr ""
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr ""
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr ""
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr ""
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr ""
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr ""
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr ""
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr ""
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr ""
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr ""
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr ""
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr ""
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr ""
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr ""
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr ""
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr ""
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr ""
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr ""
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr ""
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr ""
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr ""
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr ""
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr ""
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr ""
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr ""
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr ""
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr ""
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr ""
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr ""
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr ""
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr ""
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr ""
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr ""
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr ""
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr ""
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr ""
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr ""
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr ""
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr ""
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr ""
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr ""
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr ""
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr ""
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr ""
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr ""
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr ""
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr ""
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr ""
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr ""
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr ""
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr ""
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr ""
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr ""
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr ""
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr ""
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr ""
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3398,23 +3403,23 @@ msgstr ""
 msgid "Price"
 msgstr ""
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr ""
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr ""
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr ""
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3423,101 +3428,101 @@ msgstr ""
 msgid "Active"
 msgstr ""
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr ""
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr ""
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr ""
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr ""
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr ""
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr ""
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr ""
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr ""
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr ""
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr ""
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr ""
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr ""
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr ""
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr ""
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr ""
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr ""
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr ""
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr ""
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr ""
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr ""
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr ""
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr ""
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr ""
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3527,31 +3532,31 @@ msgstr ""
 msgid "Image"
 msgstr ""
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr ""
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3806,7 +3811,7 @@ msgstr ""
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3821,7 +3826,7 @@ msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3867,7 +3872,7 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3893,7 +3898,7 @@ msgstr ""
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3911,7 +3916,7 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3919,7 +3924,7 @@ msgstr ""
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -3936,7 +3941,7 @@ msgid "Supplier part description"
 msgstr ""
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4783,7 +4788,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr ""
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr ""
 
@@ -5478,38 +5483,42 @@ msgstr ""
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr ""
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr ""
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr ""
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr ""
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr ""
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr ""
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr ""
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr ""
@@ -5556,11 +5565,13 @@ msgstr ""
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5577,7 +5588,7 @@ msgstr ""
 msgid "Category Path"
 msgstr ""
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5600,16 +5611,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr ""
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr ""
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr ""
@@ -5660,7 +5673,7 @@ msgstr ""
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr ""
@@ -5694,7 +5707,7 @@ msgid "Default keywords for parts in this category"
 msgstr ""
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr ""
 
@@ -5741,7 +5754,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr ""
 
@@ -5765,10 +5778,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr ""
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5876,151 +5889,159 @@ msgstr ""
 msgid "Sell multiple"
 msgstr ""
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6028,567 +6049,596 @@ msgstr ""
 msgid "Date"
 msgstr ""
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr ""
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr ""
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr ""
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr ""
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr ""
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr ""
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr ""
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr ""
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr ""
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr ""
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr ""
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr ""
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr ""
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr ""
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr ""
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr ""
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr ""
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr ""
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr ""
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr ""
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr ""
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr ""
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr ""
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr ""
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr ""
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr ""
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr ""
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr ""
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr ""
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr ""
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr ""
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr ""
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr ""
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr ""
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr ""
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr ""
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr ""
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr ""
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr ""
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr ""
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr ""
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr ""
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr ""
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr ""
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr ""
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr ""
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr ""
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7062,8 +7112,8 @@ msgstr ""
 msgid "Hide Part Details"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr ""
 
@@ -7078,8 +7128,8 @@ msgstr ""
 msgid "No supplier pricing available"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7147,7 +7197,20 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7155,65 +7218,73 @@ msgstr ""
 msgid "Last Updated"
 msgstr ""
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr ""
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr ""
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9325,7 +9396,7 @@ msgid "Project Codes"
 msgstr ""
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr ""
 
@@ -9366,14 +9437,6 @@ msgstr ""
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr ""
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9397,68 +9460,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10801,10 +10869,6 @@ msgstr ""
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index 8460616f24..79ba923eb8 100644
--- a/InvenTree/locale/en/LC_MESSAGES/django.po
+++ b/InvenTree/locale/en/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
+"POT-Creation-Date: 2023-11-21 13:44+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"
@@ -58,7 +58,7 @@ msgstr ""
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
 #: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -265,7 +265,7 @@ msgstr ""
 msgid "Select file to attach"
 msgstr ""
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
 #: part/admin.py:39 part/models.py:836
@@ -296,10 +296,10 @@ msgstr ""
 msgid "File comment"
 msgstr ""
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -343,16 +343,16 @@ msgstr ""
 msgid "Invalid choice"
 msgstr ""
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -364,13 +364,13 @@ msgid "Name"
 msgstr ""
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -378,8 +378,8 @@ msgstr ""
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -445,12 +445,12 @@ msgstr ""
 msgid "An error has been logged by the server."
 msgstr ""
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr ""
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -664,7 +664,7 @@ msgstr ""
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr ""
 
@@ -920,14 +920,14 @@ msgstr ""
 msgid "Build must be cancelled before it can be deleted"
 msgstr ""
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr ""
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -996,7 +996,7 @@ msgstr ""
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1026,11 +1026,11 @@ msgstr ""
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1171,12 +1171,13 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1208,7 +1209,7 @@ msgstr ""
 msgid "Priority of this build order"
 msgstr ""
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1246,7 +1247,7 @@ msgstr ""
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr ""
@@ -1261,10 +1262,10 @@ msgstr ""
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1428,7 +1429,7 @@ msgid "A list of build outputs must be provided"
 msgstr ""
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2035,1365 +2036,1369 @@ msgstr ""
 msgid "Select {name} file to upload"
 msgstr ""
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr ""
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr ""
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr ""
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr ""
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr ""
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr ""
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr ""
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr ""
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr ""
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr ""
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr ""
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr ""
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr ""
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr ""
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr ""
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr ""
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr ""
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr ""
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr ""
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr ""
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr ""
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr ""
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr ""
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr ""
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr ""
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr ""
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr ""
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr ""
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr ""
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr ""
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr ""
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr ""
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr ""
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr ""
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr ""
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr ""
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr ""
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr ""
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr ""
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr ""
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr ""
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr ""
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr ""
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr ""
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr ""
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr ""
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr ""
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr ""
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr ""
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr ""
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr ""
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr ""
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr ""
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr ""
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr ""
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr ""
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr ""
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr ""
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr ""
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr ""
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr ""
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr ""
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr ""
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr ""
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr ""
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr ""
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr ""
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr ""
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr ""
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr ""
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr ""
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr ""
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr ""
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr ""
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr ""
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr ""
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr ""
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr ""
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr ""
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr ""
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr ""
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr ""
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr ""
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr ""
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr ""
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr ""
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr ""
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr ""
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr ""
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr ""
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr ""
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr ""
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr ""
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr ""
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr ""
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr ""
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr ""
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr ""
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr ""
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr ""
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr ""
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr ""
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr ""
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr ""
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr ""
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr ""
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr ""
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr ""
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr ""
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr ""
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr ""
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr ""
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr ""
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr ""
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr ""
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr ""
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr ""
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr ""
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr ""
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr ""
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr ""
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr ""
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr ""
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr ""
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr ""
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr ""
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr ""
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr ""
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr ""
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr ""
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr ""
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr ""
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr ""
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr ""
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr ""
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr ""
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr ""
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr ""
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr ""
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr ""
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr ""
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr ""
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr ""
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr ""
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr ""
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr ""
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr ""
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr ""
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr ""
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr ""
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr ""
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr ""
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr ""
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr ""
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr ""
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr ""
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr ""
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr ""
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr ""
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr ""
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr ""
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr ""
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr ""
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr ""
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr ""
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr ""
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr ""
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr ""
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr ""
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr ""
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr ""
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr ""
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr ""
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr ""
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr ""
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr ""
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr ""
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr ""
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr ""
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr ""
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr ""
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr ""
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr ""
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr ""
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr ""
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr ""
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr ""
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr ""
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr ""
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr ""
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr ""
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr ""
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr ""
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr ""
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr ""
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr ""
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr ""
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr ""
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr ""
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr ""
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr ""
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr ""
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr ""
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr ""
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr ""
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr ""
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr ""
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr ""
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr ""
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr ""
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr ""
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr ""
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr ""
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr ""
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr ""
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr ""
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr ""
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr ""
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr ""
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr ""
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr ""
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr ""
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr ""
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr ""
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr ""
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr ""
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr ""
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr ""
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr ""
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr ""
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr ""
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr ""
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr ""
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr ""
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr ""
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr ""
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr ""
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr ""
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr ""
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr ""
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr ""
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr ""
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr ""
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr ""
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr ""
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr ""
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr ""
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr ""
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr ""
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr ""
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr ""
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr ""
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr ""
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr ""
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr ""
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr ""
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr ""
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr ""
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr ""
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr ""
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr ""
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr ""
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr ""
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3401,23 +3406,23 @@ msgstr ""
 msgid "Price"
 msgstr ""
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr ""
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr ""
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr ""
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3426,101 +3431,101 @@ msgstr ""
 msgid "Active"
 msgstr ""
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr ""
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr ""
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr ""
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr ""
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr ""
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr ""
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr ""
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr ""
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr ""
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr ""
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr ""
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr ""
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr ""
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr ""
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr ""
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr ""
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr ""
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr ""
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr ""
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr ""
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr ""
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr ""
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr ""
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3530,31 +3535,31 @@ msgstr ""
 msgid "Image"
 msgstr ""
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr ""
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3809,7 +3814,7 @@ msgstr ""
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3824,7 +3829,7 @@ msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3870,7 +3875,7 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:40 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3896,7 +3901,7 @@ msgstr ""
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3914,7 +3919,7 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3922,7 +3927,7 @@ msgstr ""
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -3939,7 +3944,7 @@ msgid "Supplier part description"
 msgstr ""
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4786,7 +4791,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr ""
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr ""
 
@@ -5481,12 +5486,12 @@ msgstr ""
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr ""
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr ""
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr ""
@@ -5559,11 +5564,13 @@ msgstr ""
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5580,7 +5587,7 @@ msgstr ""
 msgid "Category Path"
 msgstr ""
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5603,16 +5610,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr ""
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr ""
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr ""
@@ -5663,7 +5672,7 @@ msgstr ""
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr ""
@@ -5697,7 +5706,7 @@ msgid "Default keywords for parts in this category"
 msgstr ""
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr ""
 
@@ -5744,7 +5753,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr ""
 
@@ -5768,10 +5777,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr ""
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5879,151 +5888,159 @@ msgstr ""
 msgid "Sell multiple"
 msgstr ""
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6031,567 +6048,596 @@ msgstr ""
 msgid "Date"
 msgstr ""
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr ""
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr ""
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr ""
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr ""
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr ""
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr ""
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr ""
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr ""
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr ""
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr ""
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr ""
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr ""
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr ""
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr ""
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr ""
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr ""
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr ""
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr ""
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr ""
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr ""
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr ""
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr ""
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr ""
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr ""
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr ""
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr ""
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr ""
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr ""
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr ""
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr ""
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr ""
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr ""
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr ""
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr ""
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr ""
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr ""
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr ""
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr ""
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr ""
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr ""
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr ""
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr ""
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr ""
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr ""
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr ""
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr ""
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr ""
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7065,8 +7111,8 @@ msgstr ""
 msgid "Hide Part Details"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr ""
 
@@ -7081,8 +7127,8 @@ msgstr ""
 msgid "No supplier pricing available"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7150,7 +7196,20 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7158,65 +7217,73 @@ msgstr ""
 msgid "Last Updated"
 msgstr ""
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr ""
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr ""
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9328,7 +9395,7 @@ msgid "Project Codes"
 msgstr ""
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr ""
 
@@ -9369,14 +9436,6 @@ msgstr ""
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr ""
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9400,68 +9459,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10804,10 +10868,6 @@ msgstr ""
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index 1c2544793a..cb7b2fde51 100644
--- a/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:37\n"
 "Last-Translator: \n"
 "Language-Team: Spanish, Mexico\n"
 "Language: es_MX\n"
@@ -32,16 +32,16 @@ msgstr "Ningún valor proporcionado"
 #: InvenTree/conversion.py:125
 #, python-brace-format
 msgid "Could not convert {original} to {unit}"
-msgstr ""
+msgstr "No se pudo convertir {original} a {unit}"
 
 #: InvenTree/conversion.py:127
 msgid "Invalid quantity supplied"
-msgstr ""
+msgstr "La cantidad suministrada es inválida"
 
 #: InvenTree/conversion.py:141
 #, python-brace-format
 msgid "Invalid quantity supplied ({exc})"
-msgstr ""
+msgstr "La cantidad suministrada no es válida ({exc})"
 
 #: InvenTree/exceptions.py:89
 msgid "Error details can be found in the admin panel"
@@ -56,8 +56,8 @@ msgstr "Ingrese la fecha"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -142,7 +142,7 @@ msgstr "Serie duplicada"
 #: InvenTree/helpers.py:523 InvenTree/helpers.py:558
 #, python-brace-format
 msgid "Invalid group range: {group}"
-msgstr ""
+msgstr "Rango de grupo inválido: {group}"
 
 #: InvenTree/helpers.py:552
 #, python-brace-format
@@ -264,10 +264,10 @@ msgstr "Archivo adjunto"
 msgid "Select file to attach"
 msgstr "Seleccionar archivo para adjuntar"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr "Comentario"
 msgid "File comment"
 msgstr "Comentario del archivo"
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr "Los nombres duplicados no pueden existir bajo el mismo padre"
 msgid "Invalid choice"
 msgstr "Selección no válida"
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr "Nombre"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr "Nombre"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr "Error de servidor"
 msgid "An error has been logged by the server."
 msgstr "Se ha registrado un error por el servidor."
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "Debe ser un número válido"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -461,22 +461,23 @@ msgstr "Seleccionar moneda de las opciones disponibles"
 
 #: InvenTree/serializers.py:427
 msgid "You do not have permission to change this user role."
-msgstr ""
+msgstr "No tiene permiso para cambiar este rol de usuario."
 
 #: InvenTree/serializers.py:437
 msgid "Only superusers can create new users"
-msgstr ""
+msgstr "Solo los superusuarios pueden crear nuevos usuarios"
 
 #: InvenTree/serializers.py:454
 #, python-brace-format
 msgid "Welcome to {current_site.name}"
-msgstr ""
+msgstr "Bienvenido/a a {current_site.name}"
 
 #: InvenTree/serializers.py:455
 #, python-brace-format
 msgid "Your account has been created.\n\n"
 "Please use the password reset function to get access (at https://{domain})."
-msgstr ""
+msgstr "Su cuenta ha sido creada.\n\n"
+"Por favor, utilice la función de restablecimiento de contraseña para obtener acceso (en https://{domain})."
 
 #: InvenTree/serializers.py:519
 msgid "Filename"
@@ -543,7 +544,7 @@ msgstr "La descarga de imágenes desde la URL remota no está habilitada"
 
 #: InvenTree/settings.py:819
 msgid "Bulgarian"
-msgstr ""
+msgstr "Búlgaro"
 
 #: InvenTree/settings.py:820
 msgid "Czech"
@@ -661,7 +662,7 @@ msgstr "Chino (Simplificado)"
 msgid "Chinese (Traditional)"
 msgstr "Chino (Tradicional)"
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr "Falló la comprobación en segundo plano del worker"
 
@@ -917,14 +918,14 @@ msgstr "Acerca de InvenTree"
 msgid "Build must be cancelled before it can be deleted"
 msgstr "La compilación debe cancelarse antes de poder ser eliminada"
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr "Consumible"
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -981,7 +982,7 @@ msgstr "Construir órdenes"
 
 #: build/models.py:115
 msgid "Build order part cannot be changed"
-msgstr ""
+msgstr "La parte del pedido de construcción no puede ser modificada"
 
 #: build/models.py:122
 msgid "Invalid choice for parent build"
@@ -993,7 +994,7 @@ msgstr "Número de orden de construcción o armado"
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1024,11 @@ msgstr "Orden de Construcción o Armado a la que se asigna"
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1169,13 @@ msgid "User who issued this build order"
 msgstr "El usuario que emitió esta orden"
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1207,7 @@ msgstr "Prioridad de construcción"
 msgid "Priority of this build order"
 msgstr "Prioridad de esta orden de construcción"
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1245,7 @@ msgstr "La salida de la construcción no coincide con el orden de construcción"
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr "La cantidad debe ser mayor que cero"
@@ -1258,10 +1260,10 @@ msgstr "Ensamblar equipo"
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1427,7 @@ msgid "A list of build outputs must be provided"
 msgstr "Debe proporcionarse una lista de salidas de construcción"
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2032,1365 +2034,1369 @@ msgstr "Archivo {name.title()}"
 msgid "Select {name} file to upload"
 msgstr "Seleccione el archivo {name} para subir"
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr "Actualizado"
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr "Fecha y hora de la última actualización"
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr "Código único del proyecto"
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr "Descripción del proyecto"
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr "Clave de configuración (debe ser única - mayúsculas y minúsculas)"
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr "Valor de ajuste"
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr "El valor elegido no es una opción válida"
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr "El valor debe ser un valor booleano"
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr "El valor debe ser un entero"
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr "Cadena de clave debe ser única"
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr "Sin grupo"
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr "Un dominio vacío no está permitido."
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr "Nombre de dominio inválido: {domain}"
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr "Reinicio requerido"
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr "Se ha cambiado una configuración que requiere un reinicio del servidor"
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
-msgstr ""
+msgstr "Migraciones pendientes"
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
-msgstr ""
+msgstr "Número de migraciones de base de datos pendientes"
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr "Nombre de la instancia del servidor"
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr "Descriptor de cadena para la instancia del servidor"
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr "Usar nombre de instancia"
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr "Utilice el nombre de la instancia en la barra de título"
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr "Restringir mostrar 'acerca de'"
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr "Mostrar la modal `about` solo para superusuarios"
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr "Nombre de empresa"
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr "Nombre interno de empresa"
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr "URL Base"
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr "URL base para la instancia del servidor"
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr "Moneda predeterminada"
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr "Seleccione la moneda base para los cálculos de precios"
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr "días"
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr "Descargar desde URL"
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr "Permitir la descarga de imágenes y archivos remotos desde la URL externa"
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr "Límite de tamaño de descarga"
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr "Tamaño máximo de descarga permitido para la imagen remota"
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr "Agente de usuario usado para descargar desde la URL"
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr "Permitir reemplazar el agente de usuario utilizado para descargar imágenes y archivos desde URL externa (dejar en blanco para el valor predeterminado)"
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr "Requiere confirmación"
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr "Requiere confirmación explícita del usuario para ciertas acciones."
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr "Profundidad del árbol"
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr "Profundidad de árbol predeterminada para treeview. Los niveles más profundos pueden ser cargados perezosamente a medida que son necesarios."
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr "Actualizar intervalo de actualización"
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr "Con qué frecuencia comprobar actualizaciones (establecer a cero para desactivar)"
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr "Copia de seguridad automática"
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr "Activar copia de seguridad automática de los archivos de base de datos y medios"
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr "Intervalo de respaldo automático"
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr "Especificar número de días entre eventos automatizados de copia de seguridad"
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr "Intervalo de eliminación de tareas"
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr "Los resultados de las tareas en segundo plano se eliminarán después del número especificado de días"
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr "Intervalo de eliminación de registro de errores"
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr "Los registros de errores se eliminarán después del número especificado de días"
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr "Intervalo de eliminación de notificaciones"
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr "Las notificaciones de usuario se eliminarán después del número especificado de días"
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr "Soporte de código de barras"
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr "Retraso de entrada de código de barras"
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr "Tiempo de retraso en la lectura de códigos de barras"
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr "Soporte para Webcam de código de barras"
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr "Permitir escaneo de código de barras a través de webcam en el navegador"
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr "Revisiones de partes"
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr "Habilitar campo de revisión para parte"
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr "Regex IPN"
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr "Patrón de expresión regular para IPN de la parte coincidente"
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr "Permitir IPN duplicado"
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr "Permitir que varias partes compartan el mismo IPN"
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr "Permitir editar IPN"
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr "Permite cambiar el valor de IPN mientras se edita una parte"
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr "Copiar parte de datos BOM"
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr "Copiar datos BOM por defecto al duplicar una parte"
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr "Copiar parámetros de parte"
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr "Copiar datos de parámetro por defecto al duplicar una parte"
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr "Copiar parte de datos de prueba"
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr "Copiar datos de parámetro por defecto al duplicar una parte"
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr "Copiar plantillas de parámetros de categoría"
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr "Copiar plantillas de parámetros de categoría al crear una parte"
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr "Plantilla"
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr "Las partes son plantillas por defecto"
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr "Montaje"
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr "Las partes pueden ser ensambladas desde otros componentes por defecto"
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr "Componente"
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr "Las partes pueden ser usadas como subcomponentes por defecto"
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr "Comprable"
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr "Las partes son comprables por defecto"
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr "Vendible"
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr "Las partes se pueden vender por defecto"
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr "Rastreable"
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr "Las partes son rastreables por defecto"
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr "Virtual"
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr "Las partes son virtuales por defecto"
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr "Mostrar importación en vistas"
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr "Mostrar el asistente de importación en algunas vistas de partes"
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr "Mostrar partes relacionadas"
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr "Mostrar partes relacionadas para una parte"
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr "Datos iniciales de existencias"
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr "Permitir la creación del stock inicial al añadir una nueva parte"
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr "Datos iniciales del proveedor"
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr "Permitir la creación de datos iniciales del proveedor al agregar una nueva parte"
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr "Formato de visualización de Nombre de Parte"
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr "Formato para mostrar el nombre de la parte"
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr "Icono por defecto de la categoría de parte"
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr "Icono por defecto de la categoría de parte (vacío significa que no hay icono)"
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr "Forzar unidades de parámetro"
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr "Si se proporcionan unidades, los valores de parámetro deben coincidir con las unidades especificadas"
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr "Mínimo de lugares decimales en el precio"
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr "Número mínimo de decimales a mostrar al procesar los datos de precios"
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr "Máximo de lugares decimales en el precio"
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr "Número máximo de decimales a mostrar al procesar los datos de precios"
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr "Usar precios de proveedor"
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr "Incluir descuentos de precios del proveedor en los cálculos generales de precios"
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr "Anulación del historial de compra"
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr "El precio histórico de compra anula los descuentos de precios del proveedor"
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr "Usar precio del artículo de almacén"
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr "Usar los precios de los datos de inventario introducidos manualmente para los cálculos de precios"
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr "Edad del precio del artículo de almacén"
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr "Excluir artículos de almacén anteriores a este número de días de los cálculos de precios"
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr "Usar precios variantes"
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr "Incluir variantes de precios en los cálculos generales de precios"
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr "Solo variantes activas"
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr "Usar solo partes de variantes activas para calcular los precios de variantes"
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr "Intervalo de reconstrucción de precios"
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr "Número de días antes de que el precio de la parte se actualice automáticamente"
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr "Precios internos"
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr "Habilitar precios internos para partes"
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr "Anulación del precio interno"
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr "Si está disponible, los precios internos anulan los cálculos del rango de precios"
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr "Habilitar impresión de etiquetas"
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr "Habilitar impresión de etiquetas desde la interfaz web"
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr "PPP de la imagen de etiqueta"
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr "Resolución DPI al generar archivos de imagen que suministrar para etiquetar complementos de impresión"
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr "Habilitar informes"
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr "Habilitar generación de informes"
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr "Modo de depuración"
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr "Generar informes en modo de depuración (salida HTML)"
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr "Tamaño de página"
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr "Tamaño de página predeterminado para informes PDF"
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr "Habilitar informes de prueba"
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr "Habilitar generación de informes de prueba"
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr "Adjuntar informes de prueba"
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr "Al imprimir un informe de prueba, adjuntar una copia del informe de prueba al artículo de almacén asociado"
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr "Seriales únicos globalmente"
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr "Los números de serie para los artículos de inventario deben ser únicos globalmente"
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr "Autollenar números de serie"
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr "Autorellenar números de serie en formularios"
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr "Eliminar existencias agotadas"
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr "Determina el comportamiento predeterminado cuando un artículo de almacén es agotado"
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr "Plantilla de código de lote"
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr "Plantilla para generar códigos de lote por defecto para artículos de almacén"
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr "Expiración de stock"
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr "Habilitar la funcionalidad de expiración de stock"
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr "Vender existencias caducadas"
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr "Permitir venta de existencias caducadas"
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr "Tiempo histórico de Stock"
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr "Número de días de artículos de stock se consideran obsoletos antes de caducar"
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr "Crear Stock Caducado"
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr "Permitir crear con stock caducado"
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr "Control de Stock"
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr "Habilitar control de propiedad sobre ubicaciones de stock y artículos"
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr "Icono por defecto de ubicación de almacén"
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr "Icono por defecto de ubicación de almacén (vacío significa que no hay icono)"
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr ""
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr "Patrón requerido para generar el campo de referencia de la Orden de Ensamblado"
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr "Habilitar órdenes de devolución"
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr "Habilitar la funcionalidad de orden de devolución en la interfaz de usuario"
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr "Patrón de referencia de orden de devolución"
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr "Patrón requerido para generar el campo de referencia de la orden de devolución"
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr "Editar ordenes de devolución completadas"
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr "Permitir la edición de ordenes de devolución después de que hayan sido completados"
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr "Patrón requerido para generar el campo de referencia de la orden de venta"
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr ""
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr ""
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr ""
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr ""
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr ""
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr "Habilitar función de contraseña olvidada"
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr "Activar la función olvido de contraseña en las páginas de inicio de sesión"
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr "Habilitar registro"
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr "Activar auto-registro para usuarios en las páginas de inicio de sesión"
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr "Habilitar SSO"
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr "Habilitar SSO en las páginas de inicio de sesión"
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr "Habilitar registro SSO"
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr "Activar autoregistro a través de SSO para usuarios en las páginas de inicio de sesión"
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr "Email requerido"
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr "Requiere usuario para suministrar correo al registrarse"
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr "Auto-rellenar usuarios SSO"
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr "Rellenar automáticamente los datos de usuario de la cuenta SSO"
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr "Correo dos veces"
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr "Al registrarse pregunte dos veces a los usuarios por su correo"
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr "Contraseña dos veces"
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr "Al registrarse, preguntar dos veces a los usuarios por su contraseña"
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr "Dominios permitidos"
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr "Grupo al registrarse"
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr "Grupo al que se asignan nuevos usuarios al registrarse"
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr "Forzar MFA"
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr "Los usuarios deben utilizar seguridad multifactor."
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr "Comprobar complementos al iniciar"
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr "Comprobar que todos los complementos están instalados en el arranque - habilitar en entornos de contenedores"
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr "Habilitar integración de URL"
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr "Habilitar plugins para añadir rutas de URL"
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr "Habilitar integración de navegación"
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr "Habilitar plugins para integrar en la navegación"
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr "Habilitar integración de la aplicación"
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr "Habilitar plugins para añadir aplicaciones"
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr "Habilitar integración de programación"
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr "Habilitar plugins para ejecutar tareas programadas"
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr "Habilitar integración de eventos"
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr "Habilitar plugins para responder a eventos internos"
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr "Habilitar códigos de proyecto"
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr "Habilitar códigos de proyecto para rastrear proyectos"
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr ""
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr ""
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr ""
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr "Intervalo de borrado de informe"
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
-msgstr ""
+msgstr "Mostrar nombres completos de los usuarios"
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
-msgstr ""
+msgstr "Mostrar nombres completos de usuarios en lugar de nombres de usuario"
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr "Tecla de ajustes (debe ser única - mayúsculas y minúsculas"
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr "Ocultar partes inactivas"
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr "Ocultar partes inactivas en los resultados mostrados en la página de inicio"
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr "Mostrar partes suscritas"
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr "Mostrar las partes suscritas en la página principal"
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr "Mostrar categorías suscritas"
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr "Mostrar categorías de partes suscritas en la página de inicio"
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr "Mostrar últimas partes"
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr "Mostrar las últimas partes en la página de inicio"
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr "Mostrar BOMs no validadas"
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr "Mostrar BOMs que esperan validación en la página de inicio"
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr "Mostrar cambios recientes de stock"
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr "Mostrar artículos de stock recientemente modificados en la página de inicio"
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr "Mostrar stock bajo"
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr "Mostrar artículos de stock bajo en la página de inicio"
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr "Mostrar stock agotado"
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr "Mostrar artículos agotados en la página de inicio"
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr "Mostrar stock necesario"
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr "Mostrar artículos de stock necesarios para trabajos en la página de inicio"
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr "Mostrar stock caducado"
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr "Mostrar artículos de stock caducados en la página de inicio"
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr "Mostrar stock obsoleto"
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr "Mostrar artículos de stock obsoletos en la página de inicio"
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr "Mostrar trabajos pendientes"
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr "Mostrar trabajos pendientes en la página de inicio"
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr "Mostrar trabajos vencidos"
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr "Mostrar trabajos pendientes en la página de inicio"
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr "Mostrar Órdenes de Compra Pendientes"
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr "Mostrar las OC destacadas en la página de inicio"
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr "Mostrar OC atrasadas"
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr "Mostrar las OC vencidas en la página de inicio"
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr "Mostrar OV pendiemtes"
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr "Mostrar OV pendientes en la página de inicio"
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr "Mostrar OV atrasadas"
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr "Mostrar OV atrasadas en la página de inicio"
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr "Mostrar novedades"
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr "Mostrar las últimas novedades de InvenTree en la página de inicio"
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr "Mostrar etiqueta interior"
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr "Mostrar etiquetas PDF en el navegador, en lugar de descargar como un archivo"
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr "Impresora predeterminada"
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr ""
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr "Mostrar informe en línea"
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr "Mostrar informes PDF en el navegador, en lugar de descargar como un archivo"
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr "Buscar partes"
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr ""
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr "Buscar partes de proveedor"
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr ""
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
-msgstr ""
+msgstr "Buscar Partes del Fabricante"
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr ""
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr "Ocultar Partes Inactivas"
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
-msgstr ""
+msgstr "Excluir las partes inactivas de la ventana de previsualización de búsqueda"
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr "Buscar categorías"
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
-msgstr ""
+msgstr "Mostrar categorias de la parte en la ventana de previsualización de búsqueda"
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr "Buscar inventario"
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
-msgstr ""
+msgstr "Mostrar artículos del stock en la ventana de previsualización de búsqueda"
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
-msgstr ""
+msgstr "Ocultar Artículos del Stock Agotados"
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
-msgstr ""
+msgstr "Excluir artículos de stock que no están disponibles en la ventana de previsualización de búsqueda"
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr "Buscar ubicaciones"
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr "Mostrar ubicaciones de almacén en la ventana de vista previa de búsqueda"
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr "Buscar empresas"
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr "Mostrar empresas en la ventana de vista previa de búsqueda"
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
-msgstr ""
+msgstr "Buscar Pedidos de Construcción"
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr ""
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr "Buscar órdenes de compra"
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr ""
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
-msgstr ""
+msgstr "Excluir pedidos de compra inactivos"
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr ""
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr "Buscar órdenes de venta"
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr ""
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr ""
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr ""
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr "Buscar órdenes de devolución"
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr "Resultados de la vista previa"
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr ""
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
-msgstr "Búsqueda Regex"
+msgstr "Búsqueda usando una expresión regular"
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr "Habilitar expresiones regulares en las consultas de búsqueda"
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr "Búsqueda por palabra completa"
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr "Las consultas de búsqueda devuelven resultados para palabras enteras coincidentes"
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr "Mostrar cantidad en formularios"
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr "Mostrar la cantidad de partes disponibles en algunos formularios"
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr "Formularios de cierre de teclas de escape"
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr "Usa la clave de escape para cerrar formularios modales"
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr "Barra de navegación fija"
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr "La posición de la barra de navegación se fija en la parte superior de la pantalla"
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr "Formato de Fecha"
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr "Formato preferido para mostrar fechas"
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr "Planificación de partes"
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr ""
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr ""
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr ""
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr ""
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr "Cantidad de salto de precio"
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3398,23 +3404,23 @@ msgstr "Cantidad de salto de precio"
 msgid "Price"
 msgstr "Precio"
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr "Precio unitario a la cantidad especificada"
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr ""
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr "Punto final en el que se recibe este webhook"
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr "Nombre para este webhook"
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3423,101 +3429,101 @@ msgstr "Nombre para este webhook"
 msgid "Active"
 msgstr "Activo"
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr "Está activo este webhook"
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr "Token"
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr "Token para el acceso"
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr "Clave"
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr "Secreto compartido para HMAC"
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr "ID de mensaje"
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr "Identificador único para este mensaje"
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr "Host"
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr "Servidor desde el cual se recibió este mensaje"
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr "Encabezado"
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr "Encabezado del mensaje"
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr "Cuerpo"
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr "Cuerpo de este mensaje"
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr "Endpoint en el que se recibió este mensaje"
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr "Trabajado en"
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr "¿El trabajo en este mensaje ha terminado?"
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr "Id"
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr "Título"
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr "Publicado"
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr "Autor"
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr "Resumen"
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr "Leer"
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr "¿Esta noticia ya fue leída?"
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3527,31 +3533,31 @@ msgstr "¿Esta noticia ya fue leída?"
 msgid "Image"
 msgstr "Imágen"
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr "Archivo de imagen"
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr "Nombre de unidad"
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr "Símbolo"
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr "Símbolo de unidad opcional"
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr "Definición"
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr "Definición de unidad"
 
@@ -3806,7 +3812,7 @@ msgstr "Seleccionar parte"
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3821,7 +3827,7 @@ msgid "Select manufacturer"
 msgstr "Seleccionar fabricante"
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3867,7 +3873,7 @@ msgid "Parameter value"
 msgstr "Valor del parámetro"
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3893,7 +3899,7 @@ msgstr "La parte vinculada del fabricante debe hacer referencia a la misma parte
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3911,7 +3917,7 @@ msgid "Select supplier"
 msgstr "Seleccionar proveedor"
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3919,7 +3925,7 @@ msgstr "Seleccionar proveedor"
 msgid "SKU"
 msgstr "SKU"
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr "Unidad de mantenimiento de stock de proveedores"
 
@@ -3936,7 +3942,7 @@ msgid "Supplier part description"
 msgstr "Descripción de la parte del proveedor"
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4783,7 +4789,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr "Sólo las partes vendibles pueden ser asignadas a un pedido de venta"
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr "Precio de Venta"
 
@@ -5478,38 +5484,42 @@ msgstr "Actualizado el precio unitario de {part} a {price}"
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr "Actualizado el precio unitario de {part} a {price} y la cantidad a {qty}"
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr "ID de Parte"
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr "Nombre de parte"
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr "Descripción de parte"
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr "IPN"
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr "Revisión"
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr "Palabras claves"
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr "ID de Categoría"
@@ -5556,11 +5566,13 @@ msgstr "Usado en"
 msgid "Building"
 msgstr "En construcción"
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr "Costo mínimo"
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr "Costo máximo"
 
@@ -5577,7 +5589,7 @@ msgstr "Nombre del padre"
 msgid "Category Path"
 msgstr "Ruta de Categoría"
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5600,16 +5612,18 @@ msgstr "ID de artículo de BOM"
 msgid "Parent IPN"
 msgstr "IPN del padre"
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr "IPN de la parte"
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr "Precio mínimo"
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr "Precio máximo"
@@ -5660,7 +5674,7 @@ msgstr "Stock Disponible"
 msgid "Input quantity for price calculation"
 msgstr "Cantidad de entrada para el cálculo del precio"
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr "Categoría de parte"
@@ -5694,7 +5708,7 @@ msgid "Default keywords for parts in this category"
 msgstr "Palabras clave por defecto para partes en esta categoría"
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr "Icono"
 
@@ -5741,7 +5755,7 @@ msgstr "Parte con este nombre, IPN y revisión ya existe."
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr "¡No se pueden asignar partes a las categorías de partes estructurales!"
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr "Nombre de la parte"
 
@@ -5765,10 +5779,10 @@ msgstr "Descripción de parte (opcional)"
 msgid "Part keywords to improve visibility in search results"
 msgstr "Palabras clave para mejorar la visibilidad en los resultados de búsqueda"
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5876,151 +5890,159 @@ msgstr "Último inventario"
 msgid "Sell multiple"
 msgstr "Vender múltiples"
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr "Moneda utilizada para almacenar en caché los cálculos de precios"
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr "Costo mínimo de BOM"
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr "Costo mínimo de partes de componentes"
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr "Costo máximo de BOM"
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr "Costo máximo de partes de componentes"
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr "Costo mínimo de compra"
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr "Costo histórico mínimo de compra"
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr "Costo máximo de compra"
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr "Costo histórico máximo de compra"
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr "Precio interno mínimo"
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr "Precio interno máximo"
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr "Costo máximo basado en precios reducidos internos"
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr "Precio mínimo de proveedor"
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr "Precio mínimo de la parte de proveedores externos"
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr "Precio máximo de proveedor"
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr "Precio máximo de la parte de proveedores externos"
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr "Costo mínimo de variante"
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr "Costo mínimo calculado de las partes variantes"
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr "Costo máximo de variante"
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr "Costo máximo calculado de las partes variantes"
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr "Precio de venta mínimo"
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr "Precio de venta mínimo basado en precios reducidos"
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr "Precio de venta máximo"
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr "Precio de venta máximo basado en precios reducidos"
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr "Costo de venta mínimo"
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr "Precio de venta mínimo histórico"
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr "Número de artículos"
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6028,567 +6050,596 @@ msgstr ""
 msgid "Date"
 msgstr "Fecha"
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr "Notas adicionales"
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr "Informe"
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr "Número de partes"
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr "Las plantillas de prueba sólo pueden ser creadas para partes rastreables"
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr "Ya existe una prueba con este nombre para esta parte"
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr "Nombre de prueba"
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr "Introduzca un nombre para la prueba"
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr "Descripción de prueba"
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr "Introduce la descripción para esta prueba"
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr "Requerido"
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr "¿Es necesario pasar esta prueba?"
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr "Requiere valor"
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr "¿Esta prueba requiere un valor al agregar un resultado de la prueba?"
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr "Adjunto obligatorio"
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr "¿Esta prueba requiere un archivo adjunto al agregar un resultado de la prueba?"
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr "El nombre de parámetro en la plantilla tiene que ser único"
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr "Nombre de Parámetro"
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr "Casilla de verificación"
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr "¿Es este parámetro una casilla de verificación?"
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr "Opciones"
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr "Opciones válidas para este parámetro (separados por comas)"
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr "Opción inválida para el valor del parámetro"
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr "Parte principal"
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr "Plantilla de parámetro"
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr "Datos"
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr "Valor del parámetro"
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr "Valor predeterminado"
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr "Valor de parámetro por defecto"
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr "ID de parte o nombre de parte"
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr "Valor de ID de parte única"
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr "Valor IPN de parte"
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr "Nivel"
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr "Nivel de BOM"
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr "Item de Lista de Materiales"
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr "Seleccionar parte principal"
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr "Sub parte"
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr "Seleccionar parte a utilizar en BOM"
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr "Cantidad del artículo en BOM"
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr "Este artículo BOM es opcional"
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr "Este artículo de BOM es consumible (no está rastreado en órdenes de construcción)"
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr "Exceso"
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr "Cantidad estimada de desperdicio de construcción (absoluta o porcentaje)"
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr "Referencia de artículo de BOM"
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr "Notas del artículo de BOM"
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr "Suma de verificación"
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr "Suma de verificación de línea de BOM"
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr "Validado"
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr "Este artículo de BOM ha sido validado"
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr "Este artículo BOM es heredado por BOMs para partes variantes"
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr "Permitir variantes"
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr "Artículos de stock para partes variantes pueden ser usados para este artículo BOM"
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr "La cantidad debe ser un valor entero para las partes rastreables"
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr "Debe especificar la subparte"
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr "Ítem de BOM sustituto"
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr "La parte sustituta no puede ser la misma que la parte principal"
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr "Artículo BOM superior"
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr "Sustituir parte"
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr "Parte 1"
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr "Parte 2"
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr "Seleccionar parte relacionada"
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr "Moneda de compra de ítem de stock"
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr ""
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr "Parte original"
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr "Seleccione la parte original a duplicar"
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr "Copiar Imagen"
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr "Copiar imagen desde la parte original"
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr "Copiar BOM"
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr "Copiar la factura de materiales de la parte original"
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr "Copiar Parámetros"
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr "Copiar datos del parámetro de la parte original"
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr "Cantidad Inicial de Stock"
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr "Seleccione proveedor (o déjelo en blanco para saltar)"
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr "Seleccionar fabricante (o dejar en blanco para saltar)"
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr "Número de parte del fabricante"
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr "La empresa seleccionada no es un proveedor válido"
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr "La empresa seleccionada no es un fabricante válido"
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr "Duplicar Parte"
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr "Información del proveedor"
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr "Añadir información inicial del proveedor para esta parte"
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr "Copiar Parámetros de Categoría"
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr "Copiar plantillas de parámetro de la categoría de partes seleccionada"
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr "Generar informe"
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr "Actualizar partes"
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr "Actualizar"
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr "Seleccionar parte de la que copiar BOM"
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr "Eliminar Datos Existentes"
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr "Eliminar artículos BOM existentes antes de copiar"
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr "Incluye Heredado"
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr "Incluye artículos BOM que son heredados de partes con plantillas"
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr "Omitir filas no válidas"
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr "Activar esta opción para omitir filas inválidas"
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr "Copiar partes sustitutas"
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr "Limpiar BOM Existente"
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr "Varios resultados encontrados"
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr "No se encontraron partes coincidentes"
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr "La parte no está designada como componente"
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr "Cantidad no proporcionada"
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr "Cantidad no válida"
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr "Se requiere al menos un artículo BOM"
 
@@ -6754,7 +6805,7 @@ msgstr ""
 #: templates/InvenTree/settings/sidebar.html:53
 #: templates/js/translated/stock.js:2186 users/models.py:193
 msgid "Stocktake"
-msgstr "Inventario"
+msgstr "Verificación de Inventario"
 
 #: part/templates/part/detail.html:83
 msgid "Part Test Templates"
@@ -7062,8 +7113,8 @@ msgstr "No se encontraron imágenes coincidentes"
 msgid "Hide Part Details"
 msgstr "Ocultar Detalles de la Parte"
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr "Precios del Proveedor"
 
@@ -7078,8 +7129,8 @@ msgstr "Costo unitario"
 msgid "No supplier pricing available"
 msgstr "Ningún precio de proveedor disponible"
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr "Precios BOM"
 
@@ -7147,7 +7198,20 @@ msgstr "Vista general de precios"
 msgid "Refresh Part Pricing"
 msgstr "Actualizar precio de partes"
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr "Editar"
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7155,65 +7219,73 @@ msgstr "Actualizar precio de partes"
 msgid "Last Updated"
 msgstr "Última actualización"
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr "Categoría de precio"
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr "Mínimo"
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr "Máximo"
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr "Precio Interno"
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr "Historial de compras"
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr "Precios variantes"
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr "Precios globales"
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr "Historial de ventas"
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr "Ir a la vista general"
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr "Añadir salto de precio interno"
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9325,7 +9397,7 @@ msgid "Project Codes"
 msgstr "Códigos del proyecto"
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr "Nuevo código de proyecto"
 
@@ -9366,14 +9438,6 @@ msgstr "Editar Configuración de Usuario"
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr "Editar"
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9397,68 +9461,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr "grupo"
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr "No hay plantillas de parámetros de categoría"
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr "Editar Plantilla"
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr "Eliminar Plantilla"
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr "Eliminar plantilla de parámetro de categoría"
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr "Crear plantilla de parámetro de categoría"
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr "Crear plantilla Parámetro de Parte"
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10801,10 +10870,6 @@ msgstr "Progreso"
 msgid "No user information"
 msgstr "No hay información de usuario"
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr "grupo"
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/InvenTree/locale/es_MX/LC_MESSAGES/django.po
index 8460616f24..79ba923eb8 100644
--- a/InvenTree/locale/es_MX/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es_MX/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
+"POT-Creation-Date: 2023-11-21 13:44+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"
@@ -58,7 +58,7 @@ msgstr ""
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
 #: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -265,7 +265,7 @@ msgstr ""
 msgid "Select file to attach"
 msgstr ""
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
 #: part/admin.py:39 part/models.py:836
@@ -296,10 +296,10 @@ msgstr ""
 msgid "File comment"
 msgstr ""
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -343,16 +343,16 @@ msgstr ""
 msgid "Invalid choice"
 msgstr ""
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -364,13 +364,13 @@ msgid "Name"
 msgstr ""
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -378,8 +378,8 @@ msgstr ""
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -445,12 +445,12 @@ msgstr ""
 msgid "An error has been logged by the server."
 msgstr ""
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr ""
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -664,7 +664,7 @@ msgstr ""
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr ""
 
@@ -920,14 +920,14 @@ msgstr ""
 msgid "Build must be cancelled before it can be deleted"
 msgstr ""
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr ""
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -996,7 +996,7 @@ msgstr ""
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1026,11 +1026,11 @@ msgstr ""
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1171,12 +1171,13 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1208,7 +1209,7 @@ msgstr ""
 msgid "Priority of this build order"
 msgstr ""
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1246,7 +1247,7 @@ msgstr ""
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr ""
@@ -1261,10 +1262,10 @@ msgstr ""
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1428,7 +1429,7 @@ msgid "A list of build outputs must be provided"
 msgstr ""
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2035,1365 +2036,1369 @@ msgstr ""
 msgid "Select {name} file to upload"
 msgstr ""
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr ""
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr ""
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr ""
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr ""
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr ""
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr ""
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr ""
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr ""
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr ""
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr ""
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr ""
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr ""
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr ""
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr ""
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr ""
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr ""
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr ""
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr ""
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr ""
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr ""
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr ""
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr ""
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr ""
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr ""
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr ""
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr ""
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr ""
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr ""
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr ""
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr ""
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr ""
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr ""
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr ""
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr ""
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr ""
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr ""
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr ""
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr ""
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr ""
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr ""
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr ""
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr ""
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr ""
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr ""
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr ""
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr ""
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr ""
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr ""
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr ""
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr ""
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr ""
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr ""
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr ""
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr ""
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr ""
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr ""
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr ""
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr ""
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr ""
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr ""
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr ""
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr ""
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr ""
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr ""
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr ""
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr ""
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr ""
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr ""
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr ""
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr ""
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr ""
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr ""
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr ""
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr ""
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr ""
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr ""
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr ""
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr ""
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr ""
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr ""
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr ""
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr ""
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr ""
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr ""
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr ""
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr ""
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr ""
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr ""
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr ""
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr ""
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr ""
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr ""
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr ""
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr ""
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr ""
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr ""
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr ""
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr ""
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr ""
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr ""
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr ""
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr ""
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr ""
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr ""
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr ""
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr ""
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr ""
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr ""
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr ""
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr ""
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr ""
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr ""
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr ""
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr ""
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr ""
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr ""
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr ""
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr ""
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr ""
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr ""
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr ""
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr ""
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr ""
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr ""
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr ""
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr ""
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr ""
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr ""
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr ""
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr ""
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr ""
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr ""
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr ""
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr ""
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr ""
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr ""
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr ""
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr ""
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr ""
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr ""
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr ""
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr ""
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr ""
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr ""
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr ""
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr ""
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr ""
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr ""
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr ""
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr ""
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr ""
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr ""
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr ""
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr ""
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr ""
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr ""
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr ""
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr ""
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr ""
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr ""
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr ""
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr ""
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr ""
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr ""
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr ""
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr ""
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr ""
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr ""
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr ""
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr ""
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr ""
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr ""
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr ""
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr ""
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr ""
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr ""
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr ""
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr ""
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr ""
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr ""
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr ""
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr ""
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr ""
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr ""
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr ""
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr ""
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr ""
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr ""
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr ""
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr ""
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr ""
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr ""
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr ""
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr ""
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr ""
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr ""
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr ""
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr ""
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr ""
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr ""
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr ""
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr ""
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr ""
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr ""
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr ""
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr ""
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr ""
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr ""
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr ""
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr ""
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr ""
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr ""
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr ""
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr ""
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr ""
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr ""
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr ""
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr ""
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr ""
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr ""
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr ""
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr ""
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr ""
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr ""
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr ""
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr ""
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr ""
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr ""
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr ""
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr ""
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr ""
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr ""
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr ""
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr ""
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr ""
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr ""
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr ""
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr ""
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr ""
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr ""
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr ""
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr ""
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr ""
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr ""
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr ""
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr ""
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr ""
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr ""
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr ""
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr ""
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr ""
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr ""
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr ""
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr ""
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr ""
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr ""
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr ""
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr ""
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr ""
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr ""
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr ""
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr ""
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr ""
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3401,23 +3406,23 @@ msgstr ""
 msgid "Price"
 msgstr ""
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr ""
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr ""
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr ""
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3426,101 +3431,101 @@ msgstr ""
 msgid "Active"
 msgstr ""
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr ""
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr ""
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr ""
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr ""
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr ""
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr ""
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr ""
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr ""
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr ""
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr ""
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr ""
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr ""
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr ""
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr ""
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr ""
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr ""
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr ""
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr ""
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr ""
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr ""
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr ""
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr ""
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr ""
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3530,31 +3535,31 @@ msgstr ""
 msgid "Image"
 msgstr ""
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr ""
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3809,7 +3814,7 @@ msgstr ""
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3824,7 +3829,7 @@ msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3870,7 +3875,7 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:40 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3896,7 +3901,7 @@ msgstr ""
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3914,7 +3919,7 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3922,7 +3927,7 @@ msgstr ""
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -3939,7 +3944,7 @@ msgid "Supplier part description"
 msgstr ""
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4786,7 +4791,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr ""
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr ""
 
@@ -5481,12 +5486,12 @@ msgstr ""
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr ""
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr ""
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr ""
@@ -5559,11 +5564,13 @@ msgstr ""
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5580,7 +5587,7 @@ msgstr ""
 msgid "Category Path"
 msgstr ""
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5603,16 +5610,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr ""
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr ""
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr ""
@@ -5663,7 +5672,7 @@ msgstr ""
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr ""
@@ -5697,7 +5706,7 @@ msgid "Default keywords for parts in this category"
 msgstr ""
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr ""
 
@@ -5744,7 +5753,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr ""
 
@@ -5768,10 +5777,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr ""
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5879,151 +5888,159 @@ msgstr ""
 msgid "Sell multiple"
 msgstr ""
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6031,567 +6048,596 @@ msgstr ""
 msgid "Date"
 msgstr ""
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr ""
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr ""
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr ""
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr ""
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr ""
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr ""
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr ""
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr ""
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr ""
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr ""
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr ""
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr ""
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr ""
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr ""
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr ""
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr ""
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr ""
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr ""
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr ""
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr ""
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr ""
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr ""
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr ""
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr ""
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr ""
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr ""
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr ""
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr ""
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr ""
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr ""
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr ""
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr ""
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr ""
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr ""
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr ""
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr ""
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr ""
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr ""
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr ""
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr ""
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr ""
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr ""
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr ""
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr ""
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr ""
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr ""
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr ""
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7065,8 +7111,8 @@ msgstr ""
 msgid "Hide Part Details"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr ""
 
@@ -7081,8 +7127,8 @@ msgstr ""
 msgid "No supplier pricing available"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7150,7 +7196,20 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7158,65 +7217,73 @@ msgstr ""
 msgid "Last Updated"
 msgstr ""
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr ""
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr ""
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9328,7 +9395,7 @@ msgid "Project Codes"
 msgstr ""
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr ""
 
@@ -9369,14 +9436,6 @@ msgstr ""
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr ""
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9400,68 +9459,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10804,10 +10868,6 @@ msgstr ""
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/fa/LC_MESSAGES/django.po b/InvenTree/locale/fa/LC_MESSAGES/django.po
index f4054b0ac5..77d760016e 100644
--- a/InvenTree/locale/fa/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fa/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:37\n"
 "Last-Translator: \n"
 "Language-Team: Persian\n"
 "Language: fa_IR\n"
@@ -56,8 +56,8 @@ msgstr "تاریخ را وارد کنید"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr ""
 msgid "Select file to attach"
 msgstr ""
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr ""
 msgid "File comment"
 msgstr ""
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr ""
 msgid "Invalid choice"
 msgstr ""
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr ""
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr ""
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr ""
 msgid "An error has been logged by the server."
 msgstr ""
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr ""
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -661,7 +661,7 @@ msgstr ""
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr ""
 
@@ -917,14 +917,14 @@ msgstr ""
 msgid "Build must be cancelled before it can be deleted"
 msgstr ""
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr ""
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -993,7 +993,7 @@ msgstr ""
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1023,11 @@ msgstr ""
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1168,13 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1206,7 @@ msgstr ""
 msgid "Priority of this build order"
 msgstr ""
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1244,7 @@ msgstr ""
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr ""
@@ -1258,10 +1259,10 @@ msgstr ""
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1426,7 @@ msgid "A list of build outputs must be provided"
 msgstr ""
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2032,1365 +2033,1369 @@ msgstr ""
 msgid "Select {name} file to upload"
 msgstr ""
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr ""
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr ""
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr ""
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr ""
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr ""
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr ""
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr ""
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr ""
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr ""
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr ""
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr ""
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr ""
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr ""
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr ""
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr ""
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr ""
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr ""
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr ""
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr ""
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr ""
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr ""
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr ""
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr ""
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr ""
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr ""
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr ""
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr ""
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr ""
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr ""
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr ""
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr ""
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr ""
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr ""
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr ""
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr ""
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr ""
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr ""
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr ""
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr ""
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr ""
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr ""
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr ""
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr ""
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr ""
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr ""
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr ""
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr ""
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr ""
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr ""
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr ""
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr ""
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr ""
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr ""
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr ""
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr ""
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr ""
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr ""
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr ""
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr ""
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr ""
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr ""
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr ""
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr ""
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr ""
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr ""
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr ""
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr ""
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr ""
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr ""
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr ""
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr ""
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr ""
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr ""
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr ""
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr ""
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr ""
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr ""
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr ""
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr ""
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr ""
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr ""
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr ""
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr ""
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr ""
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr ""
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr ""
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr ""
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr ""
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr ""
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr ""
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr ""
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr ""
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr ""
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr ""
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr ""
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr ""
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr ""
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr ""
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr ""
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr ""
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr ""
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr ""
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr ""
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr ""
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr ""
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr ""
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr ""
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr ""
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr ""
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr ""
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr ""
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr ""
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr ""
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr ""
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr ""
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr ""
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr ""
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr ""
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr ""
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr ""
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr ""
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr ""
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr ""
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr ""
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr ""
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr ""
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr ""
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr ""
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr ""
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr ""
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr ""
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr ""
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr ""
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr ""
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr ""
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr ""
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr ""
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr ""
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr ""
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr ""
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr ""
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr ""
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr ""
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr ""
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr ""
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr ""
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr ""
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr ""
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr ""
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr ""
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr ""
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr ""
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr ""
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr ""
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr ""
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr ""
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr ""
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr ""
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr ""
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr ""
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr ""
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr ""
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr ""
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr ""
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr ""
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr ""
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr ""
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr ""
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr ""
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr ""
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr ""
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr ""
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr ""
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr ""
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr ""
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr ""
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr ""
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr ""
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr ""
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr ""
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr ""
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr ""
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr ""
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr ""
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr ""
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr ""
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr ""
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr ""
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr ""
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr ""
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr ""
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr ""
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr ""
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr ""
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr ""
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr ""
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr ""
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr ""
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr ""
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr ""
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr ""
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr ""
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr ""
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr ""
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr ""
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr ""
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr ""
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr ""
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr ""
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr ""
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr ""
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr ""
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr ""
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr ""
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr ""
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr ""
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr ""
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr ""
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr ""
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr ""
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr ""
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr ""
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr ""
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr ""
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr ""
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr ""
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr ""
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr ""
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr ""
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr ""
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr ""
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr ""
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr ""
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr ""
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr ""
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr ""
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr ""
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr ""
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr ""
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr ""
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr ""
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr ""
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr ""
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr ""
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr ""
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr ""
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr ""
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr ""
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr ""
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr ""
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr ""
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr ""
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr ""
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr ""
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr ""
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr ""
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr ""
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr ""
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr ""
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr ""
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr ""
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr ""
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr ""
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3398,23 +3403,23 @@ msgstr ""
 msgid "Price"
 msgstr ""
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr ""
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr ""
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr ""
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3423,101 +3428,101 @@ msgstr ""
 msgid "Active"
 msgstr ""
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr ""
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr ""
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr ""
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr ""
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr ""
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr ""
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr ""
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr ""
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr ""
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr ""
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr ""
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr ""
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr ""
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr ""
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr ""
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr ""
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr ""
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr ""
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr ""
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr ""
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr ""
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr ""
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr ""
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3527,31 +3532,31 @@ msgstr ""
 msgid "Image"
 msgstr ""
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr ""
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3806,7 +3811,7 @@ msgstr ""
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3821,7 +3826,7 @@ msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3867,7 +3872,7 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3893,7 +3898,7 @@ msgstr ""
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3911,7 +3916,7 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3919,7 +3924,7 @@ msgstr ""
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -3936,7 +3941,7 @@ msgid "Supplier part description"
 msgstr ""
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4783,7 +4788,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr ""
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr ""
 
@@ -5478,38 +5483,42 @@ msgstr ""
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr ""
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr ""
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr ""
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr ""
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr ""
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr ""
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr ""
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr ""
@@ -5556,11 +5565,13 @@ msgstr ""
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5577,7 +5588,7 @@ msgstr ""
 msgid "Category Path"
 msgstr ""
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5600,16 +5611,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr ""
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr ""
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr ""
@@ -5660,7 +5673,7 @@ msgstr ""
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr ""
@@ -5694,7 +5707,7 @@ msgid "Default keywords for parts in this category"
 msgstr ""
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr ""
 
@@ -5741,7 +5754,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr ""
 
@@ -5765,10 +5778,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr ""
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5876,151 +5889,159 @@ msgstr ""
 msgid "Sell multiple"
 msgstr ""
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6028,567 +6049,596 @@ msgstr ""
 msgid "Date"
 msgstr ""
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr ""
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr ""
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr ""
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr ""
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr ""
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr ""
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr ""
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr ""
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr ""
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr ""
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr ""
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr ""
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr ""
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr ""
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr ""
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr ""
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr ""
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr ""
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr ""
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr ""
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr ""
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr ""
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr ""
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr ""
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr ""
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr ""
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr ""
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr ""
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr ""
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr ""
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr ""
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr ""
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr ""
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr ""
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr ""
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr ""
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr ""
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr ""
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr ""
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr ""
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr ""
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr ""
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr ""
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr ""
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr ""
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr ""
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr ""
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7062,8 +7112,8 @@ msgstr ""
 msgid "Hide Part Details"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr ""
 
@@ -7078,8 +7128,8 @@ msgstr ""
 msgid "No supplier pricing available"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7147,7 +7197,20 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7155,65 +7218,73 @@ msgstr ""
 msgid "Last Updated"
 msgstr ""
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr ""
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr ""
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9325,7 +9396,7 @@ msgid "Project Codes"
 msgstr ""
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr ""
 
@@ -9366,14 +9437,6 @@ msgstr ""
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr ""
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9397,68 +9460,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10801,10 +10869,6 @@ msgstr ""
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/fi/LC_MESSAGES/django.po b/InvenTree/locale/fi/LC_MESSAGES/django.po
index 219aacfa80..d4d452c988 100644
--- a/InvenTree/locale/fi/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fi/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Finnish\n"
 "Language: fi_FI\n"
@@ -56,8 +56,8 @@ msgstr "Anna päivämäärä"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr "Liite"
 msgid "Select file to attach"
 msgstr "Valitse liitettävä tiedosto"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr "Kommentti"
 msgid "File comment"
 msgstr "Tiedoston kommentti"
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr ""
 msgid "Invalid choice"
 msgstr "Virheellinen valinta"
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr "Nimi"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr "Nimi"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr "Palvelinvirhe"
 msgid "An error has been logged by the server."
 msgstr ""
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "Täytyy olla kelvollinen luku"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -661,7 +661,7 @@ msgstr ""
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr ""
 
@@ -917,14 +917,14 @@ msgstr "Tietoja InvenTree:stä"
 msgid "Build must be cancelled before it can be deleted"
 msgstr ""
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr ""
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -993,7 +993,7 @@ msgstr ""
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1023,11 @@ msgstr ""
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1168,13 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1206,7 @@ msgstr ""
 msgid "Priority of this build order"
 msgstr ""
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1244,7 @@ msgstr ""
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr ""
@@ -1258,10 +1259,10 @@ msgstr ""
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1426,7 @@ msgid "A list of build outputs must be provided"
 msgstr ""
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2032,1365 +2033,1369 @@ msgstr "{name.title()} Tiedosto"
 msgid "Select {name} file to upload"
 msgstr ""
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr "Päivitetty"
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr "Viimeisimmän päivityksen aikaleima"
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr ""
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr ""
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr ""
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr ""
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr ""
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr ""
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr ""
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr ""
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr "Ei ryhmää"
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr "Verkkotunnus ei saa olla tyhjä."
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr "Virheellinen verkkotunnus: {domain}"
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr "Uudelleenkäynnistys vaaditaan"
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr ""
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr ""
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr ""
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr ""
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr ""
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr ""
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr "Yrityksen nimi"
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr "Yrityksen sisäinen nimi"
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr ""
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr ""
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr "Oletusvaluutta"
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr ""
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr "päivää"
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr ""
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr ""
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr ""
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr ""
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr ""
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr ""
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr ""
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr ""
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr ""
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr ""
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr "Automaattinen varmuuskopionti"
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr "Ota käyttöön tietokannan ja mediatiedostojen automaattinen varmuuskopiointi"
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr "Automaattisen varmuuskopioinnin aikaväli"
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr ""
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr ""
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr ""
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr ""
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr "Viivakoodituki"
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr ""
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr ""
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr ""
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr ""
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr ""
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr ""
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr ""
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr ""
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr ""
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr ""
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr ""
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr ""
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr ""
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr ""
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr ""
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr ""
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr ""
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr ""
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr ""
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr ""
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr "Komponentti"
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr ""
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr "Ostettavissa"
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr ""
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr ""
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr ""
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr "Seurattavissa"
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr ""
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr ""
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr ""
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr ""
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr ""
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr ""
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr ""
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr ""
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr ""
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr ""
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr ""
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr ""
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr ""
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr ""
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr ""
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr ""
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr ""
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr ""
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr ""
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr ""
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr ""
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr ""
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr ""
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr ""
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr ""
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr ""
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr "Sisäiset hinnat"
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr ""
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr "Sisäisen hinnan ohitus"
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr ""
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr ""
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr ""
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr ""
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr ""
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr ""
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr ""
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr ""
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr ""
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr "Sivun koko"
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr ""
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr ""
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr ""
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr ""
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr ""
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr ""
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr ""
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr "Täytä sarjanumerot automaattisesti"
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr ""
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr ""
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr ""
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr ""
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr ""
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr ""
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr ""
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr ""
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr ""
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr ""
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr ""
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr ""
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr ""
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr ""
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr ""
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr ""
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr ""
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr ""
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr ""
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr ""
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr ""
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr ""
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr ""
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr ""
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr ""
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr ""
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr ""
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr ""
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr ""
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr "Salli salasananpalautus"
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr ""
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr "Salli rekisteröinti"
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr ""
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr "Salli SSO"
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr "Salli SSO kirjautumissivuilla"
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr "Salli SSO rekisteröinti"
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr ""
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr "Sähköposti vaaditaan"
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr ""
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr ""
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr ""
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr "Sähköpostiosoite kahdesti"
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr ""
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr "Salasana kahdesti"
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr ""
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr "Sallitut verkkotunnukset"
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr ""
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr ""
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr "Pakota MFA"
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr ""
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr ""
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr ""
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr ""
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr ""
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr ""
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr ""
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr ""
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr ""
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr ""
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr ""
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr ""
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr ""
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr ""
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr ""
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr ""
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr ""
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr ""
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr ""
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr ""
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr ""
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr ""
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr ""
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr ""
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr ""
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr ""
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr ""
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr ""
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr ""
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr ""
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr ""
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr ""
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr ""
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr ""
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr ""
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr ""
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr ""
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr ""
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr ""
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr ""
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr ""
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr ""
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr ""
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr ""
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr "Näytä uutiset"
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr "Näytä uutiset kotisivulla"
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr ""
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr ""
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr ""
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr ""
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr ""
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr ""
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr ""
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr ""
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr ""
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr ""
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr ""
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr ""
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr ""
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr ""
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr ""
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr ""
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr ""
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr ""
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr ""
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr ""
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr ""
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr ""
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr ""
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr ""
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr ""
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr ""
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr ""
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr ""
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr ""
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr ""
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr ""
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr ""
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr ""
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr ""
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr ""
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr ""
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr ""
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr ""
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr ""
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr ""
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr ""
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr ""
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr ""
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr ""
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr ""
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr ""
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr ""
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr ""
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr ""
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3398,23 +3403,23 @@ msgstr ""
 msgid "Price"
 msgstr "Hinta"
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr ""
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr ""
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr ""
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3423,101 +3428,101 @@ msgstr ""
 msgid "Active"
 msgstr "Aktiivinen"
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr ""
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr ""
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr ""
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr "Salaisuus"
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr ""
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr ""
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr ""
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr "Isäntä"
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr ""
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr ""
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr ""
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr ""
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr ""
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr ""
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr ""
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr ""
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr ""
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr "Otsikko"
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr "Julkaistu"
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr "Julkaisija"
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr "Yhteenveto"
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr ""
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr ""
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3527,31 +3532,31 @@ msgstr ""
 msgid "Image"
 msgstr "Kuva"
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr "Kuvatiedosto"
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3806,7 +3811,7 @@ msgstr ""
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3821,7 +3826,7 @@ msgid "Select manufacturer"
 msgstr "Valitse valmistaja"
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3867,7 +3872,7 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3893,7 +3898,7 @@ msgstr ""
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3911,7 +3916,7 @@ msgid "Select supplier"
 msgstr "Valitse toimittaja"
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3919,7 +3924,7 @@ msgstr "Valitse toimittaja"
 msgid "SKU"
 msgstr "SKU"
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr "Toimittajan varastonimike"
 
@@ -3936,7 +3941,7 @@ msgid "Supplier part description"
 msgstr ""
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4783,7 +4788,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr ""
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr ""
 
@@ -5478,38 +5483,42 @@ msgstr ""
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr ""
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr ""
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr ""
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr ""
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr ""
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr ""
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr "Avainsanat"
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr ""
@@ -5556,11 +5565,13 @@ msgstr ""
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5577,7 +5588,7 @@ msgstr ""
 msgid "Category Path"
 msgstr ""
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5600,16 +5611,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr ""
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr ""
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr ""
@@ -5660,7 +5673,7 @@ msgstr ""
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr ""
@@ -5694,7 +5707,7 @@ msgid "Default keywords for parts in this category"
 msgstr ""
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr "Kuvake"
 
@@ -5741,7 +5754,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr ""
 
@@ -5765,10 +5778,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr ""
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5876,151 +5889,159 @@ msgstr ""
 msgid "Sell multiple"
 msgstr ""
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6028,567 +6049,596 @@ msgstr ""
 msgid "Date"
 msgstr "Päivämäärä"
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr "Muut merkinnät"
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr "Raportti"
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr ""
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr ""
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr ""
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr ""
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr ""
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr ""
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr ""
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr ""
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr ""
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr ""
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr ""
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr ""
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr ""
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr ""
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr ""
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr ""
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr ""
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr ""
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr ""
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr ""
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr ""
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr ""
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr ""
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr ""
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr ""
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr ""
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr ""
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr ""
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr ""
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr ""
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr ""
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr ""
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr ""
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr ""
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr ""
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr "Valmistajan osanumero"
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr ""
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr "Luo raportti"
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr ""
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr ""
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr ""
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr ""
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr ""
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr ""
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr ""
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7062,8 +7112,8 @@ msgstr ""
 msgid "Hide Part Details"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr ""
 
@@ -7078,8 +7128,8 @@ msgstr ""
 msgid "No supplier pricing available"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7147,7 +7197,20 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr "Muokkaa"
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7155,65 +7218,73 @@ msgstr ""
 msgid "Last Updated"
 msgstr ""
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr ""
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr ""
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9325,7 +9396,7 @@ msgid "Project Codes"
 msgstr ""
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr ""
 
@@ -9366,14 +9437,6 @@ msgstr ""
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr "Muokkaa"
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9397,68 +9460,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10801,10 +10869,6 @@ msgstr "Edistyminen"
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index cf1a4f28e1..2f2362d3c3 100644
--- a/InvenTree/locale/fr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fr/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: French\n"
 "Language: fr_FR\n"
@@ -56,8 +56,8 @@ msgstr "Entrer la date"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr "Pièce jointe"
 msgid "Select file to attach"
 msgstr "Sélectionnez un fichier à joindre"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr "Commentaire"
 msgid "File comment"
 msgstr "Commentaire du fichier"
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr "Les noms dupliqués ne peuvent pas exister sous le même parent"
 msgid "Invalid choice"
 msgstr "Choix invalide"
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr "Nom"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr "Nom"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr "Erreur serveur"
 msgid "An error has been logged by the server."
 msgstr "Une erreur a été loguée par le serveur."
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "Doit être un nombre valide"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -661,7 +661,7 @@ msgstr "Chinois (Simplifié)"
 msgid "Chinese (Traditional)"
 msgstr "Chinois (Traditionnel)"
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr "Échec de la vérification du processus d'arrière-plan"
 
@@ -917,14 +917,14 @@ msgstr "À propos d'InvenTree"
 msgid "Build must be cancelled before it can be deleted"
 msgstr "La construction doit être annulée avant de pouvoir être supprimée"
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr "Consommable"
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -993,7 +993,7 @@ msgstr "Référence de l' Ordre de Fabrication"
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1023,11 @@ msgstr "BuildOrder associé a cette fabrication"
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1168,13 @@ msgid "User who issued this build order"
 msgstr "Utilisateur ayant émis cette commande de construction"
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1206,7 @@ msgstr "Priorité de fabrication"
 msgid "Priority of this build order"
 msgstr "Priorité de cet ordre de fabrication"
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1244,7 @@ msgstr "L'ordre de production de correspond pas à l'ordre de commande"
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr "La quantité doit être supérieure à zéro"
@@ -1258,10 +1259,10 @@ msgstr "Création de l'objet"
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1426,7 @@ msgid "A list of build outputs must be provided"
 msgstr "Une liste d'ordre de production doit être fourni"
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2032,1365 +2033,1369 @@ msgstr "{name.title()} Fichier"
 msgid "Select {name} file to upload"
 msgstr "Sélectionner le fichier {name} à uploader"
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr "Mise à jour"
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr "Date de la dernière mise à jour"
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr "Code projet unique"
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr "Description du projet"
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr "Clé du paramètre (doit être unique - insensible à la casse)"
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr "Valeur du paramètre"
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr "La valeur choisie n'est pas une option valide"
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr "La valeur doit être une valeur booléenne"
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr "La valeur doit être un nombre entier"
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr "La chaîne de caractères constituant la clé doit être unique"
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr "Pas de groupe"
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr "Un domaine vide n'est pas autorisé."
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr "Nom de domaine invalide : {domain}"
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr "Redémarrage nécessaire"
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr "Un paramètre a été modifié, ce qui nécessite un redémarrage du serveur"
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr "Nom de l'instance du serveur"
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr "Chaîne de caractères descriptive pour l'instance serveur"
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr "Utiliser le nom de l'instance"
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr "Utiliser le nom de l’instance dans la barre de titre"
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr "Limiter l'affichage de `about`"
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr "Afficher la modale `about` uniquement aux super-utilisateurs"
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr "Nom de la société"
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr "Nom de société interne"
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr "URL de base"
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr "URL de base pour l'instance serveur"
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr "Devise par défaut"
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr "Sélectionnez la devise de base pour les calculs de prix"
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr "jours"
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr "Télécharger depuis l'URL"
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr "Autoriser le téléchargement d'images distantes et de fichiers à partir d'URLs externes"
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr "Limite du volume de téléchargement"
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr "Taille maximale autorisée pour le téléchargement de l'image distante"
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr "Agent utilisateur utilisé pour télécharger depuis l'URL"
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr "Permettre de remplacer l'agent utilisateur utilisé pour télécharger des images et des fichiers à partir d'URL externe (laisser vide pour la valeur par défaut)"
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr "Confirmation requise"
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr "Exiger une confirmation explicite de l’utilisateur pour certaines actions."
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr "Profondeur de l'arborescence"
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr "Profondeur de l'arborescence par défaut. Les niveaux plus profonds peuvent être chargés au fur et à mesure qu'ils sont nécessaires."
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr "Intervalle de vérification des mises à jour"
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr "À quelle fréquence vérifier les mises à jour (définir à zéro pour désactiver)"
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr "Backup automatique"
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr "Activer le backup automatique de la base de données et des fichiers médias"
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr "Intervalle de sauvegarde automatique"
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr "Spécifiez le nombre de jours entre les sauvegardes automatique"
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr "Intervalle de suppression des tâches"
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr "Les résultats de la tâche en arrière-plan seront supprimés après le nombre de jours spécifié"
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr "Intervalle de suppression du journal d'erreur"
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr "Les logs d'erreur seront supprimés après le nombre de jours spécifié"
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr "Intervalle de suppression du journal de notification"
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr "Les notifications de l'utilisateur seront supprimées après le nombre de jours spécifié"
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr "Support des code-barres"
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr "Délai d'entrée du code-barres"
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr "Délai de traitement du code-barres"
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr "Prise en charge de la webcam code-barres"
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr "Autoriser la numérisation de codes-barres via la webcam dans le navigateur"
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr "Modifications de la pièce"
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr "Activer le champ de modification de la pièce"
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr "Regex IPN"
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr "Expression régulière pour la correspondance avec l'IPN de la Pièce"
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr "Autoriser les IPN dupliqués"
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr "Permettre à plusieurs pièces de partager le même IPN"
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr "Autoriser l'édition de l'IPN"
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr "Permettre de modifier la valeur de l'IPN lors de l'édition d'une pièce"
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr "Copier les données de la pièce"
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr "Copier les données des paramètres par défaut lors de la duplication d'une pièce"
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr "Copier les données des paramètres de la pièce"
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr "Copier les données des paramètres par défaut lors de la duplication d'une pièce"
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr "Copier les données de test de la pièce"
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr "Copier les données de test par défaut lors de la duplication d'une pièce"
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr "Copier les templates de paramètres de catégorie"
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr "Copier les templates de paramètres de la catégorie lors de la création d'une pièce"
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr "Modèle"
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr "Les pièces sont des templates par défaut"
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr "Assemblage"
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr "Les pièces peuvent être assemblées à partir d'autres composants par défaut"
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr "Composant"
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr "Les pièces peuvent être utilisées comme sous-composants par défaut"
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr "Achetable"
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr "Les pièces sont achetables par défaut"
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr "Vendable"
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr "Les pièces sont vendables par défaut"
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr "Traçable"
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr "Les pièces sont traçables par défaut"
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr "Virtuelle"
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr "Les pièces sont virtuelles par défaut"
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr "Afficher l'import dans les vues"
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr "Afficher l'assistant d'importation pour certaine vues de produits"
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr "Afficher les pièces connexes"
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr "Afficher les pièces connexes à une pièce"
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr "Stock initial"
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr "Permettre la création d'un stock initial lors de l'ajout d'une nouvelle pièce"
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr "Données initiales du fournisseur"
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr "Permettre la création des données initiales du fournisseur lors de l'ajout d'une nouvelle pièce"
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr "Format d'affichage du nom de la pièce"
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr "Format pour afficher le nom de la pièce"
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr "Icône de catégorie par défaut"
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr "Icône par défaut de la catégorie de la pièce (vide signifie aucune icône)"
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr "Utiliser le prix fournisseur"
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr "Inclure les réductions de prix dans le calcul du prix global"
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr "Remplacer l'historique des achats"
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr "La tarification historique des bons de commande remplace les réductions de prix des fournisseurs"
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr "Utiliser les prix des articles en stock"
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr "Utiliser les prix des données de stock saisies manuellement pour calculer les prix"
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr "Âge de tarification des articles de stock"
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr "Exclure les articles en stock datant de plus de ce nombre de jours des calculs de prix"
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr "Utiliser les prix variants"
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr "Inclure la tarification variante dans le calcul global des prix"
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr "Variantes actives uniquement"
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr "N'utiliser que des pièces de variante actives pour calculer le prix de la variante"
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr "Intervalle de regénération des prix"
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr "Nombre de jours avant la mise à jour automatique du prix de la pièce"
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr "Prix internes"
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr "Activer les prix internes pour les pièces"
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr "Substitution du prix interne"
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr "Si disponible, les prix internes remplacent les calculs de la fourchette de prix"
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr "Activer l'impression d'étiquettes"
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr "Activer l'impression d'étiquettes depuis l'interface Web"
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr "Étiquette image DPI"
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr "Résolution DPI lors de la génération de fichiers image pour fournir aux plugins d'impression d'étiquettes"
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr "Activer les rapports"
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr "Activer la génération de rapports"
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr "Mode Débogage"
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr "Générer des rapports en mode debug (sortie HTML)"
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr "Taille de la page"
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr "Taille de page par défaut pour les rapports PDF"
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr "Activer les rapports de test"
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr "Activer la génération de rapports de test"
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr "Joindre des rapports de test"
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr "Lors de l'impression d'un rapport de test, joignez une copie du rapport de test à l'article en stock associé"
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr "Numéro de Série Universellement Unique"
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr "Les numéros de série pour les articles en stock doivent être uniques au niveau global"
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr "Remplir automatiquement les Numéros de Série"
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr "Remplir automatiquement les numéros de série dans les formulaires"
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr "Supprimer le stock épuisé"
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr "Détermine le comportement par défaut lorsqu'un article de stock est épuisé"
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr "Modèle de code de lot"
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr "Modèle pour générer des codes par défaut pour les articles en stock"
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr "Expiration du stock"
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr "Activer la fonctionnalité d'expiration du stock"
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr "Vendre le stock expiré"
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr "Autoriser la vente de stock expiré"
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr "Délai de péremption du stock"
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr "Nombre de jours pendant lesquels les articles en stock sont considérés comme périmés avant d'expirer"
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr "Construction de stock expirée"
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr "Autoriser la construction avec un stock expiré"
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr "Contrôle de la propriété des stocks"
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr "Activer le contrôle de la propriété sur les emplacements de stock et les articles"
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr "Icône par défaut de l'emplacement du stock"
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr "Icône par défaut de l'emplacement du stock (vide signifie aucune icône)"
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr "Afficher les pièces en stock installées"
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr "Modèle de référence de commande de construction"
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr "Modèle requis pour générer le champ de référence de l'ordre de construction"
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr "Activer les retours de commandes"
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr "Activer la fonctionnalité de retour de commande dans l'interface utilisateur"
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr "Modèle de référence de retour de commande"
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr "Modèle requis pour générer le champ de référence du retour de commande"
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr "Modifier les retours de commandes terminées"
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr "Autoriser la modification des retours après leur enregistrement"
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr "Modèle de référence de bon de commande"
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr "Modèle requis pour générer le champ de référence du bon de commande"
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr "Expédition par défaut du bon de commande"
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr "Activer la création d'expédition par défaut avec les bons de commandes"
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr "Modifier les commandes de vente terminées"
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr "Autoriser la modification des commandes de vente après avoir été expédiées ou complétées"
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr "Modèle de référence de commande d'achat"
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr "Modèle requis pour générer le champ de référence de bon de commande"
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr "Modifier les bons de commande terminés"
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr "Autoriser la modification des bons de commande après avoir été expédiés ou complétés"
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr "Activer les mots de passe oubliés"
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr "Activer la fonction \"Mot de passe oublié\" sur les pages de connexion"
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr "Activer les inscriptions"
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr "Activer l'auto-inscription pour les utilisateurs sur les pages de connexion"
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr "Activer le SSO"
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr "Activer le SSO sur les pages de connexion"
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr "Activer l'inscription SSO"
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr "Activer l'auto-inscription via SSO pour les utilisateurs sur les pages de connexion"
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr "Email requis"
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr "Exiger que l'utilisateur fournisse un mail lors de l'inscription"
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr "Saisie automatique des utilisateurs SSO"
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr "Remplir automatiquement les détails de l'utilisateur à partir des données de compte SSO"
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr "Courriel en double"
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr "Lors de l'inscription, demandez deux fois aux utilisateurs leur mail"
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr "Mot de passe deux fois"
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr "Lors de l'inscription, demandez deux fois aux utilisateurs leur mot de passe"
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr "Domaines autorisés"
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr "Grouper sur inscription"
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr "Groupe auquel les nouveaux utilisateurs sont assignés lors de l'inscription"
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr "Forcer l'authentification multifacteurs"
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr "Les utilisateurs doivent utiliser l'authentification multifacteurs."
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr "Vérifier les plugins au démarrage"
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr "Vérifier que tous les plugins sont installés au démarrage - activer dans les environnements conteneurs"
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr "Activer l'intégration d'URL"
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr "Autoriser les plugins à ajouter des chemins URL"
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr "Activer l'intégration de navigation"
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr "Activer les plugins à s'intégrer dans la navigation"
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr "Activer l'intégration de plugins"
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr "Activer l'intégration de plugin pour ajouter des apps"
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr "Activer l'intégration du planning"
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr "Autoriser les plugins à éxécuter des tâches planifiées"
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr "Activer l'intégration des évènements"
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr "Autoriser les plugins à répondre aux évènements internes"
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr "Activer les codes projet"
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr "Fonctionnalité d'inventaire"
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr "Activer la fonctionnalité d'inventaire pour enregistrer les niveaux de stock et le calcul de la valeur du stock"
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr "Période de l'inventaire automatique"
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr "Nombre de jours entre l'enregistrement automatique des stocks (définir à zéro pour désactiver)"
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr "Les rapports d'inventaire seront supprimés après le nombre de jours spécifié"
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr "Clé du paramètre (doit être unique - insensible à la casse)"
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr ""
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr "Afficher les composants suivis"
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr "Afficher les composants suivis sur l'écran d'accueil"
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr "Afficher les catégories suivies"
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr "Afficher les catégories de pièces suivies sur la page d'accueil"
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr "Afficher les dernières pièces"
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr "Afficher les derniers composants sur la page d'accueil"
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr "Afficher les listes de matériaux non validées"
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr "Afficher les listes de matériaux en attente de validation sur la page d'accueil"
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr "Afficher les dernières modifications du stock"
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr "Afficher les articles de stock récemment modifiés sur la page d'accueil"
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr "Afficher le stock faible"
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr "Afficher les articles en stock bas sur la page d'accueil"
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr "Afficher le stock épuisé"
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr "Afficher les stocks épuisés sur la page d'accueil"
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr "Afficher le stock nécessaire"
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr "Afficher les pièces en stock nécessaires pour les assemblages sur la page d'accueil"
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr "Afficher le stock expiré"
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr "Afficher les pièces en stock expirées sur la page d'accueil"
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr "Afficher le stock périmé"
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr "Afficher les articles de stock périmés sur la page d'accueil"
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr "Afficher les constructions en attente"
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr "Afficher les constructions en attente sur la page d'accueil"
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr "Afficher les constructions en retard"
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr "Afficher les constructions en retard sur la page d'accueil"
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr "Afficher les commandes en suspens"
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr "Afficher les commandes en suspens sur la page d'accueil"
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr "Afficher les commandes en retard"
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr "Afficher les commandes en retard sur la page d'accueil"
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr "Afficher les envois en suspens"
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr "Afficher les envois en suspens sur la page d'accueil"
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr "Afficher les envois en retard"
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr "Afficher les envois en retard sur la page d'accueil"
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr "Afficher les nouvelles"
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr "Afficher les nouvelles sur la page d'accueil"
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr "Affichage du libellé en ligne"
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr "Afficher les étiquettes PDF dans le navigateur, au lieu de les télécharger en tant que fichier"
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr "Imprimante d'étiquettes par défaut"
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr "Configurer quelle imprimante d'étiquette doit être sélectionnée par défaut"
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr "Affichage du rapport en ligne"
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr "Afficher les rapports PDF dans le navigateur, au lieu de les télécharger en tant que fichier"
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr "Rechercher de pièces"
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr "Afficher les pièces dans la fenêtre d'aperçu de la recherche"
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr ""
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr "Afficher les pièces du fournisseur dans la fenêtre de prévisualisation de la recherche"
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr "Rechercher les pièces du fabricant"
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr "Afficher les pièces du fabricant dans la fenêtre de prévisualisation de recherche"
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr "Masquer les pièces inactives"
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr "Exclure les pièces inactives de la fenêtre de prévisualisation de recherche"
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr "Rechercher des catégories"
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr "Afficher les catégories de pièces dans la fenêtre de prévisualisation de recherche"
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr "Rechercher dans le stock"
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr "Afficher les pièces en stock dans la fenêtre d'aperçu de la recherche"
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr "Cacher les pièces indisponibles"
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr "Exclure les articles en stock qui ne sont pas disponibles de la fenêtre de prévisualisation de recherche"
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr "Chercher des Emplacements"
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr "Afficher les emplacements dans la fenêtre d'aperçu de la recherche"
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr "Rechercher les entreprises"
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr "Afficher les entreprises dans la fenêtre de prévisualisation de recherche"
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr "Rechercher les commandes de construction"
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr "Afficher les commandes de construction dans la fenêtre de prévisualisation de recherche"
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr "Rechercher des bons de commande"
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr "Afficher les bons de commande dans la fenêtre de prévisualisation de recherche"
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr "Exclure les bons de commande inactifs"
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr "Exclure les commandes d’achat inactives de la fenêtre de prévisualisation de recherche"
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr "Rechercher les bons de commande"
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr "Afficher les bons de commande dans la fenêtre de prévisualisation de la recherche"
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr "Exclure les bons de commande inactives"
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr "Exclure les bons de commande inactifs de la fenêtre de prévisualisation de recherche"
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr "Rechercher les commandes retournées"
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr "Résultats de l'aperçu de la recherche"
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr "Nombre de résultats à afficher dans chaque section de la fenêtre de prévisualisation de recherche"
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr "Recherche Regex"
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr "Afficher la quantité dans les formulaires"
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr "Afficher la quantité disponible dans certains formulaires"
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr "La touche Echap ferme les formulaires"
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr "Utilisez la touche Echap pour fermer les formulaires modaux"
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr "Barre de navigation fixe"
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr "La position de la barre de navigation est fixée en haut de l'écran"
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr "Format de date"
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr "Format préféré pour l'affichage des dates"
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr "Planification des pièces"
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr "Afficher les informations de planification des pièces"
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr "Inventaire des pièces"
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr "Longueur de la chaîne dans les Tableau"
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr "Limite de longueur maximale pour les chaînes affichées dans les vues de la table"
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3398,23 +3403,23 @@ msgstr ""
 msgid "Price"
 msgstr "Prix"
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr ""
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr ""
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr ""
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3423,101 +3428,101 @@ msgstr ""
 msgid "Active"
 msgstr "Actif"
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr "Ce webhook (lien de rappel HTTP) est-il actif"
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr "Jeton"
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr "Jeton d'accès"
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr "Confidentiel"
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr ""
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr "ID message"
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr "Identifiant unique pour ce message"
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr "Hôte"
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr "Hôte à partir duquel ce message a été reçu"
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr "Entête"
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr "En-tête de ce message"
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr "Corps"
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr "Corps de ce message"
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr "Endpoint à partir duquel ce message a été reçu"
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr ""
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr "Le travail sur ce message est-il terminé ?"
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr "Id"
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr "Titre"
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr "Publié"
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr "Auteur"
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr "Résumé"
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr "Lu"
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr "Cette nouvelle a-t-elle été lue ?"
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3527,31 +3532,31 @@ msgstr "Cette nouvelle a-t-elle été lue ?"
 msgid "Image"
 msgstr "Image"
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr ""
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3806,7 +3811,7 @@ msgstr ""
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3821,7 +3826,7 @@ msgid "Select manufacturer"
 msgstr "Sélectionner un fabricant"
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3867,7 +3872,7 @@ msgid "Parameter value"
 msgstr "Valeur du paramètre"
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3893,7 +3898,7 @@ msgstr "La pièce du fabricant liée doit faire référence à la même pièce d
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3911,7 +3916,7 @@ msgid "Select supplier"
 msgstr "Sélectionner un fournisseur"
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3919,7 +3924,7 @@ msgstr "Sélectionner un fournisseur"
 msgid "SKU"
 msgstr "SKU"
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr "Unité de gestion des stocks des fournisseurs"
 
@@ -3936,7 +3941,7 @@ msgid "Supplier part description"
 msgstr "Description de la pièce du fournisseur"
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4783,7 +4788,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr "Seules les pièces vendues peuvent être attribuées à une commande"
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr "Prix de vente"
 
@@ -5478,38 +5483,42 @@ msgstr ""
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr ""
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr "ID de composant"
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr "Nom de l'article"
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr ""
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr "IPN"
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr "Révision"
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr "Mots-clés"
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr ""
@@ -5556,11 +5565,13 @@ msgstr ""
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5577,7 +5588,7 @@ msgstr ""
 msgid "Category Path"
 msgstr ""
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5600,16 +5611,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr ""
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr "Prix Minimum"
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr "Prix Maximum"
@@ -5660,7 +5673,7 @@ msgstr ""
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr "Catégorie de composant"
@@ -5694,7 +5707,7 @@ msgid "Default keywords for parts in this category"
 msgstr ""
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr ""
 
@@ -5741,7 +5754,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr "Nom de l'article"
 
@@ -5765,10 +5778,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr ""
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5876,151 +5889,159 @@ msgstr ""
 msgid "Sell multiple"
 msgstr "Ventes multiples"
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6028,567 +6049,596 @@ msgstr ""
 msgid "Date"
 msgstr "Date"
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr "Notes additionnelles"
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr ""
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr ""
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr ""
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr "Nom de test"
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr ""
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr ""
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr "Requis"
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr "Valeur requise"
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr ""
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr ""
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr ""
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr ""
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr "Données"
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr ""
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr "Valeur par Défaut"
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr ""
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr ""
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr ""
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr ""
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr ""
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr "Article du BOM"
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr ""
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr ""
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr ""
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr ""
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr ""
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr "Surplus"
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr "Validée"
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr ""
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr ""
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr ""
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr ""
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr ""
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr "Devise d'achat de l'item"
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr ""
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr "Copier l'image"
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr ""
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr ""
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr "Copier les paramètres"
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr ""
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr ""
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr ""
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr ""
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr ""
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr ""
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr ""
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr ""
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr ""
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr ""
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7062,8 +7112,8 @@ msgstr ""
 msgid "Hide Part Details"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr ""
 
@@ -7078,8 +7128,8 @@ msgstr ""
 msgid "No supplier pricing available"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7147,7 +7197,20 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr "Modifier"
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7155,65 +7218,73 @@ msgstr ""
 msgid "Last Updated"
 msgstr ""
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr ""
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr "Aller à la vue d'ensemble"
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9325,7 +9396,7 @@ msgid "Project Codes"
 msgstr ""
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr ""
 
@@ -9366,14 +9437,6 @@ msgstr ""
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr "Modifier"
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9397,68 +9460,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10801,10 +10869,6 @@ msgstr ""
 msgid "No user information"
 msgstr "Pas d'informations sur l'utilisateur"
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po
index 90b564e35e..0348363b98 100644
--- a/InvenTree/locale/he/LC_MESSAGES/django.po
+++ b/InvenTree/locale/he/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Hebrew\n"
 "Language: he_IL\n"
@@ -56,8 +56,8 @@ msgstr "הזן תאריך סיום"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr "קובץ מצורף"
 msgid "Select file to attach"
 msgstr "בחר קובץ לצירוף"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr "הערה"
 msgid "File comment"
 msgstr "הערת קובץ"
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr ""
 msgid "Invalid choice"
 msgstr "בחירה שגויה"
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr "שם"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr "שם"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr ""
 msgid "An error has been logged by the server."
 msgstr ""
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "המספר חייב להיות תקין"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -661,7 +661,7 @@ msgstr ""
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr ""
 
@@ -917,14 +917,14 @@ msgstr ""
 msgid "Build must be cancelled before it can be deleted"
 msgstr ""
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr ""
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -993,7 +993,7 @@ msgstr ""
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1023,11 @@ msgstr ""
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1168,13 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1206,7 @@ msgstr ""
 msgid "Priority of this build order"
 msgstr ""
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1244,7 @@ msgstr ""
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr ""
@@ -1258,10 +1259,10 @@ msgstr ""
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1426,7 @@ msgid "A list of build outputs must be provided"
 msgstr ""
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2032,1365 +2033,1369 @@ msgstr ""
 msgid "Select {name} file to upload"
 msgstr ""
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr ""
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr ""
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr ""
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr ""
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr ""
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr ""
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr ""
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr ""
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr ""
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr ""
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr ""
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr ""
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr ""
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr ""
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr ""
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr ""
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr ""
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr ""
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr ""
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr ""
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr ""
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr ""
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr ""
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr ""
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr ""
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr ""
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr ""
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr ""
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr ""
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr ""
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr ""
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr ""
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr ""
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr ""
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr ""
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr ""
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr ""
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr ""
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr ""
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr ""
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr ""
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr ""
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr ""
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr ""
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr ""
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr ""
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr ""
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr ""
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr ""
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr ""
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr ""
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr ""
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr ""
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr ""
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr ""
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr ""
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr ""
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr ""
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr ""
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr ""
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr ""
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr ""
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr ""
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr ""
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr ""
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr ""
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr ""
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr ""
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr ""
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr ""
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr ""
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr ""
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr ""
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr ""
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr ""
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr ""
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr ""
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr ""
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr ""
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr ""
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr ""
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr ""
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr ""
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr ""
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr ""
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr ""
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr ""
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr ""
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr ""
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr ""
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr ""
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr ""
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr ""
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr ""
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr ""
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr ""
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr ""
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr ""
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr ""
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr ""
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr ""
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr ""
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr ""
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr ""
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr ""
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr ""
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr ""
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr ""
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr ""
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr ""
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr ""
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr ""
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr ""
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr ""
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr ""
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr ""
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr ""
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr ""
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr ""
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr ""
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr ""
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr ""
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr ""
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr ""
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr ""
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr ""
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr ""
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr ""
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr ""
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr ""
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr ""
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr ""
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr ""
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr ""
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr ""
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr ""
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr ""
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr ""
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr ""
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr ""
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr ""
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr ""
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr ""
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr ""
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr ""
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr ""
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr ""
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr ""
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr ""
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr ""
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr ""
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr ""
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr ""
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr ""
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr ""
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr ""
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr ""
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr ""
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr ""
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr ""
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr ""
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr ""
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr ""
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr ""
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr ""
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr ""
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr ""
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr ""
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr ""
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr ""
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr ""
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr ""
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr ""
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr ""
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr ""
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr ""
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr ""
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr ""
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr ""
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr ""
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr ""
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr ""
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr ""
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr ""
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr ""
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr ""
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr ""
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr ""
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr ""
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr ""
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr ""
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr ""
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr ""
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr ""
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr ""
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr ""
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr ""
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr ""
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr ""
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr ""
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr ""
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr ""
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr ""
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr ""
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr ""
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr ""
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr ""
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr ""
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr ""
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr ""
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr ""
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr ""
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr ""
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr ""
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr ""
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr ""
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr ""
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr ""
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr ""
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr ""
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr ""
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr ""
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr ""
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr ""
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr ""
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr ""
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr ""
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr ""
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr ""
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr ""
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr ""
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr ""
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr ""
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr ""
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr ""
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr ""
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr ""
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr ""
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr ""
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr ""
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr ""
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr ""
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr ""
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr ""
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr ""
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr ""
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr ""
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr ""
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr ""
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr ""
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr ""
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr ""
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr ""
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr ""
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr ""
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr ""
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr ""
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr ""
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr ""
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr ""
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr ""
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr ""
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr ""
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3398,23 +3403,23 @@ msgstr ""
 msgid "Price"
 msgstr ""
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr ""
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr ""
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr ""
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3423,101 +3428,101 @@ msgstr ""
 msgid "Active"
 msgstr ""
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr ""
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr ""
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr ""
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr ""
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr ""
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr ""
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr ""
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr ""
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr ""
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr ""
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr ""
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr ""
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr ""
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr ""
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr ""
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr ""
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr ""
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr ""
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr ""
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr ""
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr ""
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr ""
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr ""
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3527,31 +3532,31 @@ msgstr ""
 msgid "Image"
 msgstr ""
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr ""
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3806,7 +3811,7 @@ msgstr ""
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3821,7 +3826,7 @@ msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3867,7 +3872,7 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3893,7 +3898,7 @@ msgstr ""
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3911,7 +3916,7 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3919,7 +3924,7 @@ msgstr ""
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -3936,7 +3941,7 @@ msgid "Supplier part description"
 msgstr ""
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4783,7 +4788,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr ""
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr ""
 
@@ -5478,38 +5483,42 @@ msgstr ""
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr ""
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr ""
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr ""
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr ""
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr ""
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr ""
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr ""
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr ""
@@ -5556,11 +5565,13 @@ msgstr ""
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5577,7 +5588,7 @@ msgstr ""
 msgid "Category Path"
 msgstr ""
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5600,16 +5611,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr ""
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr ""
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr ""
@@ -5660,7 +5673,7 @@ msgstr ""
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr ""
@@ -5694,7 +5707,7 @@ msgid "Default keywords for parts in this category"
 msgstr ""
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr ""
 
@@ -5741,7 +5754,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr ""
 
@@ -5765,10 +5778,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr ""
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5876,151 +5889,159 @@ msgstr ""
 msgid "Sell multiple"
 msgstr ""
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6028,567 +6049,596 @@ msgstr ""
 msgid "Date"
 msgstr ""
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr ""
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr ""
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr ""
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr ""
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr ""
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr ""
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr ""
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr ""
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr ""
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr ""
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr ""
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr ""
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr ""
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr ""
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr ""
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr ""
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr ""
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr ""
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr ""
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr ""
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr ""
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr ""
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr ""
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr ""
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr ""
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr ""
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr ""
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr ""
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr ""
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr ""
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr ""
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr ""
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr ""
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr ""
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr ""
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr ""
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr ""
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr ""
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr ""
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr ""
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr ""
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr ""
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr ""
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr ""
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr ""
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr ""
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr ""
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7062,8 +7112,8 @@ msgstr ""
 msgid "Hide Part Details"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr ""
 
@@ -7078,8 +7128,8 @@ msgstr ""
 msgid "No supplier pricing available"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7147,7 +7197,20 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7155,65 +7218,73 @@ msgstr ""
 msgid "Last Updated"
 msgstr ""
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr ""
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr ""
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9325,7 +9396,7 @@ msgid "Project Codes"
 msgstr ""
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr ""
 
@@ -9366,14 +9437,6 @@ msgstr ""
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr ""
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9397,68 +9460,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10801,10 +10869,6 @@ msgstr ""
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/hi/LC_MESSAGES/django.po b/InvenTree/locale/hi/LC_MESSAGES/django.po
index 39fdd23afa..0abe700046 100644
--- a/InvenTree/locale/hi/LC_MESSAGES/django.po
+++ b/InvenTree/locale/hi/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:37\n"
 "Last-Translator: \n"
 "Language-Team: Hindi\n"
 "Language: hi_IN\n"
@@ -56,8 +56,8 @@ msgstr "तारीख दर्ज करें"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr ""
 msgid "Select file to attach"
 msgstr ""
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr ""
 msgid "File comment"
 msgstr ""
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr ""
 msgid "Invalid choice"
 msgstr ""
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr ""
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr ""
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr ""
 msgid "An error has been logged by the server."
 msgstr ""
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr ""
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -661,7 +661,7 @@ msgstr ""
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr ""
 
@@ -917,14 +917,14 @@ msgstr ""
 msgid "Build must be cancelled before it can be deleted"
 msgstr ""
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr ""
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -993,7 +993,7 @@ msgstr ""
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1023,11 @@ msgstr ""
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1168,13 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1206,7 @@ msgstr ""
 msgid "Priority of this build order"
 msgstr ""
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1244,7 @@ msgstr ""
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr ""
@@ -1258,10 +1259,10 @@ msgstr ""
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1426,7 @@ msgid "A list of build outputs must be provided"
 msgstr ""
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2032,1365 +2033,1369 @@ msgstr ""
 msgid "Select {name} file to upload"
 msgstr ""
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr ""
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr ""
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr ""
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr ""
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr ""
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr ""
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr ""
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr ""
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr ""
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr ""
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr ""
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr ""
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr ""
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr ""
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr ""
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr ""
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr ""
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr ""
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr ""
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr ""
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr ""
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr ""
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr ""
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr ""
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr ""
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr ""
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr ""
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr ""
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr ""
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr ""
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr ""
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr ""
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr ""
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr ""
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr ""
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr ""
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr ""
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr ""
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr ""
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr ""
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr ""
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr ""
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr ""
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr ""
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr ""
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr ""
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr ""
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr ""
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr ""
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr ""
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr ""
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr ""
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr ""
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr ""
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr ""
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr ""
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr ""
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr ""
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr ""
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr ""
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr ""
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr ""
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr ""
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr ""
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr ""
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr ""
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr ""
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr ""
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr ""
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr ""
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr ""
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr ""
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr ""
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr ""
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr ""
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr ""
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr ""
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr ""
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr ""
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr ""
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr ""
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr ""
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr ""
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr ""
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr ""
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr ""
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr ""
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr ""
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr ""
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr ""
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr ""
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr ""
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr ""
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr ""
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr ""
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr ""
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr ""
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr ""
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr ""
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr ""
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr ""
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr ""
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr ""
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr ""
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr ""
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr ""
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr ""
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr ""
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr ""
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr ""
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr ""
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr ""
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr ""
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr ""
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr ""
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr ""
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr ""
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr ""
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr ""
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr ""
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr ""
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr ""
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr ""
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr ""
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr ""
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr ""
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr ""
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr ""
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr ""
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr ""
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr ""
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr ""
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr ""
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr ""
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr ""
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr ""
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr ""
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr ""
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr ""
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr ""
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr ""
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr ""
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr ""
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr ""
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr ""
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr ""
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr ""
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr ""
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr ""
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr ""
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr ""
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr ""
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr ""
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr ""
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr ""
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr ""
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr ""
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr ""
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr ""
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr ""
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr ""
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr ""
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr ""
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr ""
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr ""
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr ""
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr ""
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr ""
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr ""
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr ""
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr ""
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr ""
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr ""
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr ""
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr ""
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr ""
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr ""
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr ""
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr ""
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr ""
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr ""
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr ""
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr ""
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr ""
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr ""
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr ""
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr ""
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr ""
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr ""
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr ""
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr ""
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr ""
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr ""
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr ""
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr ""
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr ""
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr ""
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr ""
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr ""
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr ""
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr ""
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr ""
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr ""
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr ""
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr ""
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr ""
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr ""
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr ""
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr ""
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr ""
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr ""
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr ""
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr ""
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr ""
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr ""
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr ""
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr ""
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr ""
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr ""
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr ""
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr ""
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr ""
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr ""
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr ""
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr ""
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr ""
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr ""
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr ""
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr ""
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr ""
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr ""
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr ""
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr ""
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr ""
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr ""
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr ""
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr ""
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr ""
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr ""
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr ""
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr ""
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr ""
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr ""
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr ""
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr ""
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr ""
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr ""
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr ""
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr ""
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr ""
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr ""
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr ""
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr ""
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr ""
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr ""
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr ""
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr ""
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr ""
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr ""
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr ""
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr ""
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr ""
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr ""
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3398,23 +3403,23 @@ msgstr ""
 msgid "Price"
 msgstr ""
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr ""
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr ""
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr ""
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3423,101 +3428,101 @@ msgstr ""
 msgid "Active"
 msgstr ""
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr ""
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr ""
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr ""
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr ""
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr ""
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr ""
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr ""
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr ""
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr ""
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr ""
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr ""
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr ""
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr ""
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr ""
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr ""
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr ""
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr ""
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr ""
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr ""
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr ""
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr ""
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr ""
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr ""
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3527,31 +3532,31 @@ msgstr ""
 msgid "Image"
 msgstr ""
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr ""
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3806,7 +3811,7 @@ msgstr ""
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3821,7 +3826,7 @@ msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3867,7 +3872,7 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3893,7 +3898,7 @@ msgstr ""
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3911,7 +3916,7 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3919,7 +3924,7 @@ msgstr ""
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -3936,7 +3941,7 @@ msgid "Supplier part description"
 msgstr ""
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4783,7 +4788,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr ""
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr ""
 
@@ -5478,38 +5483,42 @@ msgstr ""
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr ""
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr ""
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr ""
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr ""
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr ""
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr ""
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr ""
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr ""
@@ -5556,11 +5565,13 @@ msgstr ""
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5577,7 +5588,7 @@ msgstr ""
 msgid "Category Path"
 msgstr ""
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5600,16 +5611,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr ""
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr ""
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr ""
@@ -5660,7 +5673,7 @@ msgstr ""
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr ""
@@ -5694,7 +5707,7 @@ msgid "Default keywords for parts in this category"
 msgstr ""
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr ""
 
@@ -5741,7 +5754,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr ""
 
@@ -5765,10 +5778,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr ""
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5876,151 +5889,159 @@ msgstr ""
 msgid "Sell multiple"
 msgstr ""
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6028,567 +6049,596 @@ msgstr ""
 msgid "Date"
 msgstr ""
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr ""
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr ""
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr ""
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr ""
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr ""
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr ""
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr ""
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr ""
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr ""
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr ""
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr ""
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr ""
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr ""
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr ""
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr ""
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr ""
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr ""
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr ""
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr ""
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr ""
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr ""
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr ""
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr ""
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr ""
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr ""
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr ""
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr ""
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr ""
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr ""
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr ""
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr ""
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr ""
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr ""
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr ""
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr ""
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr ""
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr ""
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr ""
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr ""
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr ""
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr ""
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr ""
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr ""
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr ""
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr ""
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr ""
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr ""
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7062,8 +7112,8 @@ msgstr ""
 msgid "Hide Part Details"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr ""
 
@@ -7078,8 +7128,8 @@ msgstr ""
 msgid "No supplier pricing available"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7147,7 +7197,20 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7155,65 +7218,73 @@ msgstr ""
 msgid "Last Updated"
 msgstr ""
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr ""
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr ""
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9325,7 +9396,7 @@ msgid "Project Codes"
 msgstr ""
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr ""
 
@@ -9366,14 +9437,6 @@ msgstr ""
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr ""
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9397,68 +9460,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10801,10 +10869,6 @@ msgstr ""
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/hu/LC_MESSAGES/django.po b/InvenTree/locale/hu/LC_MESSAGES/django.po
index f3f223afa4..6e3d56726a 100644
--- a/InvenTree/locale/hu/LC_MESSAGES/django.po
+++ b/InvenTree/locale/hu/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Hungarian\n"
 "Language: hu_HU\n"
@@ -56,8 +56,8 @@ msgstr "Dátum megadása"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr "Melléklet"
 msgid "Select file to attach"
 msgstr "Válaszd ki a mellekelni kívánt fájlt"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr "Megjegyzés"
 msgid "File comment"
 msgstr "Leírás, bővebb infó"
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr "Duplikált nevek nem lehetnek ugyanazon szülő alatt"
 msgid "Invalid choice"
 msgstr "Érvénytelen választás"
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr "Név"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr "Név"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr "Kiszolgálóhiba"
 msgid "An error has been logged by the server."
 msgstr "A kiszolgáló egy hibaüzenetet rögzített."
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "Érvényes számnak kell lennie"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -661,7 +661,7 @@ msgstr "Kínai (egyszerűsített)"
 msgid "Chinese (Traditional)"
 msgstr "Kínai (Hagyományos)"
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr "Háttér folyamat ellenőrzés sikertelen"
 
@@ -917,14 +917,14 @@ msgstr "Verzió információk"
 msgid "Build must be cancelled before it can be deleted"
 msgstr "A gyártást be kell fejezni a törlés előtt"
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr "Fogyóeszköz"
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -993,7 +993,7 @@ msgstr "Gyártási utasítás azonosító"
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1023,11 @@ msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve"
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1168,13 @@ 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:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1206,7 @@ msgstr "Priorítás"
 msgid "Priority of this build order"
 msgstr "Gyártási utasítás priorítása"
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1244,7 @@ msgstr "Gyártási kimenet nem egyezik a gyártási utasítással"
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr "Mennyiségnek nullánál többnek kell lennie"
@@ -1258,10 +1259,10 @@ msgstr "Gyártás objektum"
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1426,7 @@ msgid "A list of build outputs must be provided"
 msgstr "A gyártási kimenetek listáját meg kell adni"
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2033,1365 +2034,1369 @@ msgstr "{name.title()} Fájl"
 msgid "Select {name} file to upload"
 msgstr "{name} fájl kiválasztása feltöltéshez"
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr "Frissítve"
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr "Legutóbbi frissítés időpontja"
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr "Egyedi projektszám"
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr "Projekt leírása"
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr "Beállítások kulcs (egyedinek kell lennie, nem kis- nagybetű érzékeny)"
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr "Beállítás értéke"
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr "A kiválasztott érték nem egy érvényes lehetőség"
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr "Az érték bináris kell legyen"
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr "Az érték egész szám kell legyen"
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr "Kulcs string egyedi kell legyen"
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr "Nincs csoport"
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr "Üres domain nem engedélyezett."
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr "Érvénytelen domain név: {domain}"
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr "Újraindítás szükséges"
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr "Egy olyan beállítás megváltozott ami a kiszolgáló újraindítását igényli"
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr "Kiszolgáló példány neve"
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr "String leíró a kiszolgáló példányhoz"
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr "Példány név használata"
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr "Példány név használata a címsorban"
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr "Verzió infók megjelenítésének tiltása"
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr "Verzió infók megjelenítése csak admin felhasználóknak"
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr "Cég neve"
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr "Belső cégnév"
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr "Kiindulási URL"
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr "Kiindulási URL a kiszolgáló példányhoz"
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr "Alapértelmezett pénznem"
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr "Válassz alap pénznemet az ár számításokhoz"
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr "nap"
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr "Letöltés URL-ről"
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr "Képek és fájlok letöltésének engedélyezése külső URL-ről"
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr "Letöltési méret korlát"
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr "Maximum megengedett letöltési mérete a távoli képeknek"
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr "Felhasznált User-agent az URL-ről letöltéshez"
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr "A külső URL-ről letöltéshez használt user-agent felülbírálásának engedélyezése (hagyd üresen az alapértelmezéshez)"
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr "Megerősítés igénylése"
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr "Kérjen felhasználói megerősítést bizonyos műveletekhez"
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr "Fa mélység"
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr "Alapértelmezett mélység a fa nézetekben. A mélyebb szintek betöltődnek ha szükségesek."
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr "Frissítés keresés gyakorisága"
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr "Milyen gyakran ellenőrizze van-e új frissítés (0=soha)"
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr "Automatikus biztonsági mentés"
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr "Adatbázis és média fájlok automatikus biztonsági mentése"
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr "Automata biztonsági mentés gyakorisága"
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr "Hány naponta készüljön automatikus biztonsági mentés"
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr "Feladat törlési gyakoriság"
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr "Háttérfolyamat eredmények törlése megadott nap eltelte után"
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr "Hibanapló törlési gyakoriság"
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr "Hibanapló bejegyzések törlése megadott nap eltelte után"
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr "Értesítés törlési gyakoriság"
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr "Felhasználói értesítések törlése megadott nap eltelte után"
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr "Vonalkód támogatás"
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr "Vonalkód beadási késleltetés"
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr "Vonalkód beadáskor a feldolgozás késleltetési ideje"
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr "Webkamerás vonalkód olvasás"
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr "Webkamerás kódolvasás engedélyezése a böngészőből"
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr "Alkatrész változatok"
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr "Alkatrész változat vagy verziószám tulajdonság használata"
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr "IPN reguláris kifejezés"
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr "Reguláris kifejezés ami illeszkedik az alkatrész IPN-re"
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr "Többször is előforduló IPN engedélyezése"
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr "Azonos IPN használható legyen több alkatrészre is"
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr "IPN szerkesztésének engedélyezése"
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr "IPN megváltoztatásánsak engedélyezése az alkatrész szerkesztése közben"
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr "Alkatrészjegyzék adatok másolása"
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr "Alkatrész másoláskor az alkatrészjegyzék adatokat is másoljuk alapból"
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr "Alkatrész paraméterek másolása"
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr "Alkatrész másoláskor a paramétereket is másoljuk alapból"
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr "Alkatrész teszt adatok másolása"
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr "Alkatrész másoláskor a tesztek adatait is másoljuk alapból"
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr "Kategória paraméter sablonok másolása"
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr "Kategória paraméter sablonok másolása alkatrész létrehozásakor"
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr "Sablon"
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr "Alkatrészek alapból sablon alkatrészek legyenek"
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr "Gyártmány"
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr "Alkatrészeket alapból lehessen gyártani másik alkatrészekből"
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr "Összetevő"
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr "Alkatrészek alapból használhatók összetevőként más alkatrészekhez"
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr "Beszerezhető"
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr "Alkatrészek alapból beszerezhetők legyenek"
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr "Értékesíthető"
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr "Alkatrészek alapból eladhatók legyenek"
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr "Követésre kötelezett"
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr "Alkatrészek alapból követésre kötelezettek legyenek"
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr "Virtuális"
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr "Alkatrészek alapból virtuálisak legyenek"
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr "Importálás megjelenítése a nézetekben"
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr "Import segéd megjelenítése néhány alkatrész nézetben"
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr "Kapcsolódó alkatrészek megjelenítése"
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr "Alkatrész kapcsolódó alkatrészeinek megjelenítése"
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr "Kezdeti készlet adatok"
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr "Kezdeti készlet létrehozása új alkatrész felvételekor"
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr "Kezdeti beszállítói adatok"
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr "Kezdeti beszállítói adatok létrehozása új alkatrész felvételekor"
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr "Alkatrész név megjelenítés formátuma"
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr "Formátum az alkatrész név megjelenítéséhez"
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr "Alkatrész kategória alapértelmezett ikon"
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr "Alkatrész kategória alapértelmezett ikon (üres ha nincs)"
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr "Csak választható mértékegységek"
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr "A megadott mértékegység csak a beállított lehetőségekből legyen elfogadva"
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr "Áraknál használt tizedesjegyek min. száma"
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr "Tizedejegyek minimális száma az árak megjelenítésekor"
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr "Áraknál használt tizedesjegyek max. száma"
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr "Tizedejegyek maximális száma az árak megjelenítésekor"
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr "Beszállítói árazás használata"
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr "Beszállítói ársávok megjelenítése az általános árkalkulációkban"
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr "Beszerzési előzmények felülbírálása"
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr "Beszerzési árelőzmények felülírják a beszállítói ársávokat"
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr "Készlet tétel ár használata"
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr "A kézzel bevitt készlet tétel árak használata az árszámításokhoz"
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr "Készlet tétel ár kora"
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr "Az ennyi napnál régebbi készlet tételek kizárása az árszámításból"
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr "Alkatrészváltozat árak használata"
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr "Alkatrészváltozat árak megjelenítése az általános árkalkulációkban"
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr "Csak az aktív változatokat"
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr "Csak az aktív alkatrészváltozatok használata az árazásban"
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr "Árazás újraszámítás gyakoriság"
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr "Árak automatikus frissítése ennyi nap után"
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr "Belső árak"
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr "Alkatrészekhez belső ár engedélyezése"
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr "Belső ár felülbírálása"
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr "Ha elérhetőek az árkalkulációkban a belső árak lesznek alapul véve"
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr "Címke nyomtatás engedélyezése"
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr "Címke nyomtatás engedélyezése a web felületről"
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr "Címke kép DPI"
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr "Képek felbontása amik átadásra kerülnek címkenyomtató pluginoknak"
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr "Riportok engedélyezése"
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr "Riportok előállításának engedélyezése"
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr "Debug mód"
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr "Riportok előállítása HTML formátumban (hibakereséshez)"
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr "Lapméret"
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr "Alapértelmezett lapméret a PDF riportokhoz"
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr "Teszt riportok engedélyezése"
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr "Teszt riportok előállításának engedélyezése"
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr "Teszt riportok hozzáadása"
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr "Teszt riport nyomtatáskor egy másolat hozzáadása a készlet tételhez"
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr "Globálisan egyedi sorozatszámok"
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr "A sorozatszámoknak egyedinek kell lennie a teljes készletre vonatkozóan"
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr "Sorozatszámok automatikus kitöltése"
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr "Sorozatszámok automatikus kitöltése a formokon"
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr "Kimerült készlet törlése"
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr "Alapértelmezett művelet mikor a készlet tétel elfogy"
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr "Batch kód sablon"
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr "Sablon a készlet tételekhez alapértelmezett batch kódok előállításához"
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr "Készlet lejárata"
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr "Készlet lejárat kezelésének engedélyezése"
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr "Lejárt készlet értékesítése"
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr "Lejárt készlet értékesítésének engedélyezése"
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr "Álló készlet ideje"
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr "Napok száma amennyivel a lejárat előtt a készlet tételeket állottnak vesszük"
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr "Lejárt készlet gyártása"
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr "Gyártás engedélyezése lejárt készletből"
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr "Készlet tulajdonosok kezelése"
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr "Tulajdonosok kezelésének engedélyezése a készlet helyekre és tételekre"
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr "Hely alapértelmezett ikon"
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr "Hely alapértelmezett ikon (üres ha nincs)"
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr "Beépített készlet megjelenítése"
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr "Beépített készlet tételek megjelenítése a készlet táblákban"
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr "Gyártási utasítás azonosító minta"
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr "Szükséges minta a gyártási utasítás azonosító mező előállításához"
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr "Visszavétel engedélyezése"
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr "Visszavételek engedélyezése a felületen"
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr "Visszavétel azonosító minta"
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr "Szükséges minta a visszavétel azonosító mező előállításához"
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr "Befejezett visszavétel szerkesztése"
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr "Visszavétel szerkesztésének engedélyezése befejezés után"
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr "Vevői rendelés azonosító minta"
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr "Szükséges minta a vevői rendelés azonosító mező előállításához"
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr "Vevői rendeléshez alapértelmezett szállítmány"
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr "Szállítmány automatikus létrehozása az új vevő rendelésekhez"
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr "Befejezett vevői rendelés szerkesztése"
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr "Vevői rendelések szerkesztésének engedélyezése szállítás vagy befejezés után"
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr "Beszerzési rendelés azonosító minta"
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr "Szükséges minta a beszerzési rendelés azonosító mező előállításához"
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr "Befejezett beszerzési rendelés szerkesztése"
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr "Beszérzési rendelések szerkesztésének engedélyezése kiküldés vagy befejezés után"
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr "Elfelejtett jelszó engedélyezése"
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr "Elfelejtett jelszó funkció engedélyezése a bejentkező oldalon"
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr "Regisztráció engedélyezése"
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr "Felhaszálók önkéntes regisztrációjának engedélyezése a bejelentkező oldalon"
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr "SSO engedélyezése"
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr "SSO engedélyezése a bejelentkező oldalon"
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr "SSO regisztráció engedélyezése"
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr "Felhaszálók önkéntes regisztrációjának engedélyezése SSO-n keresztül a bejelentkező oldalon"
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr "Email szükséges"
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr "Kötelező email megadás regisztrációkor"
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr "SSO felhasználók automatikus kitöltése"
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr "Felhasználó adatainak automatikus kitöltése az SSO fiókadatokból"
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr "Email kétszer"
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr "Regisztráláskor kétszer kérdezze a felhasználó email címét"
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr "Jelszó kétszer"
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr "Regisztráláskor kétszer kérdezze a felhasználó jelszavát"
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr "Engedélyezett domainek"
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr "Feliratkozás korlátozása megadott domain-ekre (vesszővel elválasztva, @-al kezdve)"
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr "Csoport regisztráláskor"
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr "Csoport amihez a frissen regisztrált felhasználók hozzá lesznek rendelve"
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr "Többfaktoros hitelesítés kényszerítése"
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr "A felhasználóknak többfaktoros hitelesítést kell használniuk."
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr "Pluginok ellenőrzése indításkor"
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr "Ellenőrizze induláskor hogy minden plugin telepítve van - engedélyezd konténer környezetben (docker)"
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr "URL integráció engedélyezése"
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr "URL útvonalalak hozzáadásának engedélyezése a pluginok számára"
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr "Navigációs integráció engedélyezése"
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr "Navigációs integráció engedélyezése a pluginok számára"
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr "App integráció engedélyezése"
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr "App hozzáadásának engedélyezése a pluginok számára"
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr "Ütemezés integráció engedélyezése"
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr "Háttérben futó feladatok hozzáadásának engedélyezése a pluginok számára"
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr "Esemény integráció engedélyezése"
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr "Belső eseményekre reagálás engedélyezése a pluginok számára"
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr "Projektszámok engedélyezése"
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr "Projektszámok használatának engedélyezése a projektek követéséhez"
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr "Leltár funkció"
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr "Leltár funkció engedélyezése a készlet mennyiség és érték számításhoz"
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr "Külső helyek nélkül"
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr "Külső helyek figyelmen kívül hagyása a leltár számításoknál"
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr "Automatikus leltár időpontja"
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr "Hány naponta történjen automatikus leltár (nulla egyenlő tiltva)"
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr "Riport törlési gyakoriság"
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr "Régi leltár riportok törlése hány naponta történjen"
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr "Beállítások kulcs (egyedinek kell lennie, nem kis- nagybetű érzékeny"
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr "Inaktív alkatrészek elrejtése"
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr "Nem aktív alkatrészek elrejtése a kezdőlapon"
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr "Értesítésre beállított alkatrészek megjelenítése"
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr "Alkatrész értesítések megjelenítése a főoldalon"
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr "Értesítésre beállított kategóriák megjelenítése"
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr "Alkatrész kategória értesítések megjelenítése a főoldalon"
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr "Legújabb alkatrészek megjelenítése"
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr "Legújabb alkatrészek megjelenítése a főoldalon"
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr "Jóváhagyás nélküli alkatrészjegyzékek megjelenítése"
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr "Jóváhagyásra váró alkatrészjegyzékek megjelenítése a főoldalon"
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr "Legfrissebb készlet változások megjelenítése"
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr "Legutóbb megváltozott alkatrészek megjelenítése a főoldalon"
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr "Alacsony készlet megjelenítése"
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr "Alacsony készletek megjelenítése a főoldalon"
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr "Kimerült készlet megjelenítése"
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr "Kimerült készletek megjelenítése a főoldalon"
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr "Gyártáshoz szükséges készlet megjelenítése"
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr "Gyártáshoz szükséges készletek megjelenítése a főoldalon"
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr "Lejárt készlet megjelenítése"
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr "Lejárt készletek megjelenítése a főoldalon"
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr "Állott készlet megjelenítése"
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr "Álló készletek megjelenítése a főoldalon"
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr "Függő gyártások megjelenítése"
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr "Folyamatban lévő gyártások megjelenítése a főoldalon"
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr "Késésben lévő gyártások megjelenítése"
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr "Késésben lévő gyártások megjelenítése a főoldalon"
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr "Kintlévő beszerzési rendelések megjelenítése"
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr "Kintlévő beszerzési rendelések megjelenítése a főoldalon"
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr "Késésben lévő megrendelések megjelenítése"
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr "Késésben lévő megrendelések megjelenítése a főoldalon"
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr "Függő vevői rendelések megjelenítése"
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr "Függő vevői rendelések megjelenítése a főoldalon"
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr "Késésben lévő vevői rendelések megjelenítése"
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr "Késésben lévő vevői rendelések megjelenítése a főoldalon"
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr "Függő vevői szállítmányok megjelenítése"
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr "Folyamatban lévő vevői szállítmányok megjelenítése a főoldalon"
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr "Hírek megjelenítése"
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr "Hírek megjelenítése a főoldalon"
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr "Beágyazott címke megjelenítés"
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr "PDF címkék megjelenítése a böngészőben letöltés helyett"
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr "Alapértelmezett címkenyomtató"
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr "Melyik címkenyomtató legyen az alapértelmezett"
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr "Beágyazott riport megjelenítés"
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr "PDF riport megjelenítése a böngészőben letöltés helyett"
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr "Alkatrészek keresése"
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr "Alkatrészek megjelenítése a keresési előnézetben"
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr "Beszállítói alkatrészek keresése"
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr "Beszállítói alkatrészek megjelenítése a keresési előnézetben"
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr "Gyártói alkatrészek keresése"
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr "Gyártói alkatrészek megjelenítése a keresési előnézetben"
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr "Inaktív alkatrészek elrejtése"
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr "Inaktív alkatrészek kihagyása a keresési előnézet találataiból"
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr "Kategóriák keresése"
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr "Alkatrész kategóriák megjelenítése a keresési előnézetben"
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr "Készlet keresése"
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr "Készlet tételek megjelenítése a keresési előnézetben"
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr "Nem elérhető készlet tételek elrejtése"
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr "Nem elérhető készlet kihagyása a keresési előnézet találataiból"
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr "Helyek keresése"
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr "Készlet helyek megjelenítése a keresési előnézetben"
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr "Cégek keresése"
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr "Cégek megjelenítése a keresési előnézetben"
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr "Gyártási utasítások keresése"
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr "Gyártási utasítások megjelenítése a keresés előnézet ablakban"
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr "Beszerzési rendelések keresése"
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr "Beszerzési rendelések megjelenítése a keresési előnézetben"
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr "Inaktív beszerzési rendelések kihagyása"
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr "Inaktív beszerzési rendelések kihagyása a keresési előnézet találataiból"
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr "Vevői rendelések keresése"
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr "Vevői rendelések megjelenítése a keresési előnézetben"
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr "Inaktív vevői rendelések kihagyása"
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr "Inaktív vevői rendelések kihagyása a keresési előnézet találataiból"
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr "Visszavétel keresése"
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr "Visszavételek megjelenítése a keresés előnézet ablakban"
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr "Inaktív visszavételek kihagyása"
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr "Inaktív visszavételek kihagyása a keresési előnézet találataiból"
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr "Keresési előnézet eredményei"
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr "A keresési előnézetben megjelenítendő eredmények száma szekciónként"
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr "Regex keresés"
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr "Reguláris kifejezések engedélyezése a keresésekben"
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr "Teljes szó keresés"
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr "A keresések csak teljes szóra egyező találatokat adjanak"
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr "Mennyiség megjelenítése a formokon"
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr "Rendelkezésre álló alkatrész mennyiség megjelenítése néhány formon"
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr "ESC billentyű zárja be a formot"
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr "ESC billentyű használata a modális formok bezárásához"
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr "Rögzített menüsor"
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr "A menü pozíciója mindig rögzítve a lap tetején"
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr "Dátum formátum"
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr "Preferált dátum formátum a dátumok kijelzésekor"
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr "Alkatrész ütemezés"
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr "Alkatrész ütemezési információk megjelenítése"
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr "Alkatrész leltár"
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr "Alkatrész leltár információk megjelenítése (ha a leltár funkció engedélyezett)"
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr "Táblázati szöveg hossz"
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr "Maximális szöveg hossz ami megjelenhet a táblázatokban"
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr "Alapértelmezett alkatrész címke sablon"
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr "Az alapértelmezetten kiválasztott alkatrész címke sablon"
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr "Alapértelmezett készlet címke sablon"
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr "Az alapértelmezetten kiválasztott készlet címke sablon"
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr "Alapértelmezett készlethely címke sablon"
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr "Az alapértelmezetten kiválasztott készlethely címke sablon"
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr "Hibariportok fogadása"
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr "Értesítések fogadása a rendszerhibákról"
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr "Ársáv mennyiség"
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3399,23 +3404,23 @@ msgstr "Ársáv mennyiség"
 msgid "Price"
 msgstr "Ár"
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr "Egységár egy meghatározott mennyiség esetén"
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr "Végpont"
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr "Végpont ahol ez a webhook érkezik"
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr "Webhook neve"
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3424,101 +3429,101 @@ msgstr "Webhook neve"
 msgid "Active"
 msgstr "Aktív"
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr "Aktív-e ez a webhook"
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr "Token"
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr "Token a hozzáféréshez"
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr "Titok"
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr "Megosztott titok a HMAC-hoz"
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr "Üzenet azonosító"
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr "Egyedi azonosító ehhez az üzenethez"
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr "Kiszolgáló"
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr "Kiszolgáló ahonnan ez az üzenet érkezett"
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr "Fejléc"
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr "Üzenet fejléce"
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr "Törzs"
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr "Üzenet törzse"
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr "Végpont amin ez az üzenet érkezett"
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr "Dolgozott rajta"
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr "Befejeződött a munka ezzel az üzenettel?"
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr "Id"
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr "Cím"
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr "Közzétéve"
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr "Szerző"
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr "Összefoglaló"
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr "Elolvasva"
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr "Elolvasva?"
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3528,31 +3533,31 @@ msgstr "Elolvasva?"
 msgid "Image"
 msgstr "Kép"
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr "Képfájl"
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr "A mértékegységnek valós azonosítónak kell lennie"
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr "Egység neve"
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr "Szimbólum"
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr "Opcionális mértékegység szimbólum"
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr "Definíció"
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr "Mértékegység definíció"
 
@@ -3807,7 +3812,7 @@ msgstr "Válassz alkatrészt"
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3822,7 +3827,7 @@ msgid "Select manufacturer"
 msgstr "Gyártó kiválasztása"
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3868,7 +3873,7 @@ msgid "Parameter value"
 msgstr "Paraméter értéke"
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3894,7 +3899,7 @@ msgstr "Kapcsolódó gyártói alkatrésznek ugyanarra a kiindulási alkatrészr
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3912,7 +3917,7 @@ msgid "Select supplier"
 msgstr "Beszállító kiválasztása"
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3920,7 +3925,7 @@ msgstr "Beszállító kiválasztása"
 msgid "SKU"
 msgstr "SKU"
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr "Beszállítói cikkszám"
 
@@ -3937,7 +3942,7 @@ msgid "Supplier part description"
 msgstr "Beszállítói alkatrész leírása"
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4784,7 +4789,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr "Csak értékesíthető alkatrészeket lehet vevői rendeléshez adni"
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr "Eladási ár"
 
@@ -5479,38 +5484,42 @@ msgstr "A {part} egységára {price}-ra módosítva"
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr "A {part} alkatrész módosított egységára {price} mennyisége pedig {qty}"
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr "Alkatrész ID"
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr "Alkatrész neve"
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr "Alkatrész leírása"
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr "IPN"
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr "Változat"
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr "Kulcsszavak"
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr "Kategória ID"
@@ -5557,11 +5566,13 @@ msgstr "Felhasználva ebben"
 msgid "Building"
 msgstr "Gyártásban"
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr "Minimum költség"
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr "Maximum költség"
 
@@ -5578,7 +5589,7 @@ msgstr "Szülő neve"
 msgid "Category Path"
 msgstr "Kategória elérési út"
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5601,16 +5612,18 @@ msgstr "Alkatrészjegyzék tétel ID"
 msgid "Parent IPN"
 msgstr "Szülő IPN"
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr "Alkatrész IPN"
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr "Minimum ár"
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr "Maximum ár"
@@ -5661,7 +5674,7 @@ msgstr "Elérhető készlet"
 msgid "Input quantity for price calculation"
 msgstr "Add meg a mennyiséget az árszámításhoz"
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr "Alkatrész kategória"
@@ -5695,7 +5708,7 @@ msgid "Default keywords for parts in this category"
 msgstr "Ebben a kategóriában évő alkatrészek kulcsszavai alapban"
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr "Ikon"
 
@@ -5742,7 +5755,7 @@ msgstr "Ilyen nevű, IPN-ű és reviziójú alkatrész már létezik."
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr "Szerkezeti kategóriákhoz nem lehet alkatrészeket rendelni!"
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr "Alkatrész neve"
 
@@ -5766,10 +5779,10 @@ msgstr "Alkatrész leírása (opcionális)"
 msgid "Part keywords to improve visibility in search results"
 msgstr "Alkatrész kulcsszavak amik segítik a megjelenést a keresési eredményekben"
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5877,151 +5890,159 @@ msgstr "Utolsó leltár"
 msgid "Sell multiple"
 msgstr "Több értékesítése"
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr "Árszámítások gyorstárazásához használt pénznem"
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr "Minimum alkatrészjegyzék költség"
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr "Összetevők minimum költsége"
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr "Maximum alkatrészjegyzék költség"
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr "Összetevők maximum költsége"
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr "Minimum beszerzési ár"
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr "Eddigi minimum beszerzési költség"
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr "Maximum beszerzési ár"
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr "Eddigi maximum beszerzési költség"
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr "Minimum belső ár"
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr "Minimum költség a belső ársávok alapján"
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr "Maximum belső ár"
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr "Maximum költség a belső ársávok alapján"
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr "Minimum beszállítói ár"
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr "Minimum alkatrész ár a beszállítóktól"
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr "Maximum beszállítói ár"
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr "Maximum alkatrész ár a beszállítóktól"
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr "Minimum alkatrészváltozat ár"
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr "Alkatrészváltozatok számolt minimum költsége"
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr "Maximum alkatrészváltozat ár"
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr "Alkatrészváltozatok számolt maximum költsége"
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr "Számított általános minimum költség"
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr "Számított általános maximum költség"
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr "Minimum eladási ár"
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr "Minimum eladási ár az ársávok alapján"
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr "Maximum eladási ár"
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr "Maximum eladási ár az ársávok alapján"
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr "Minimum eladási költség"
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr "Eddigi minimum eladási ár"
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr "Maximum eladási költség"
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr "Eddigi maximum eladási ár"
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr "Leltározható alkatrész"
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr "Tételszám"
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr "Egyedi készlet tételek száma a leltárkor"
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr "Teljes készlet a leltárkor"
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6029,567 +6050,596 @@ msgstr "Teljes készlet a leltárkor"
 msgid "Date"
 msgstr "Dátum"
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr "Leltározva ekkor"
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr "További megjegyzések"
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr "Leltározta"
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr "Minimum készlet érték"
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr "Becsült minimum raktárkészlet érték"
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr "Maximum készlet érték"
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr "Becsült maximum raktárkészlet érték"
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr "Riport"
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr "Leltár riport fájl (generált)"
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr "Alkatrész szám"
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr "Leltározott alkatrészek száma"
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr "Felhasználó aki a leltár riportot kérte"
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr "Teszt sablont csak követésre kötelezett alkatrészhez lehet csinálni"
 
-#: part/models.py:3224
+#: part/models.py:3245
 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:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr "Teszt név"
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr "Add meg a teszt nevét"
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr "Teszt leírása"
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr "Adj hozzá egy leírást ehhez a teszthez"
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr "Kötelező"
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr "Szükséges-e hogy ez a teszt sikeres legyen?"
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr "Kötelező érték"
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr "Szükséges-e hogy ennek a tesztnek az eredményéhez kötelezően érték legyen rendelve?"
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr "Kötelező melléklet"
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr "Szükséges-e hogy ennek a tesztnek az eredményéhez kötelezően fájl melléklet legyen rendelve?"
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr "Jelölőnégyzet paraméternek nem lehet mértékegysége"
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr "Jelölőnégyzet paraméternek nem lehetnek választási lehetőségei"
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr "A lehetőségek egyediek kell legyenek"
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr "A paraméter sablon nevének egyedinek kell lennie"
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr "Paraméter neve"
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr "Paraméter mértékegysége"
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr "Paraméter leírása"
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr "Jelölőnégyzet"
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr "Ez a paraméter egy jelölőnégyzet?"
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr "Lehetőségek"
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr "Választható lehetőségek (vesszővel elválasztva)"
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr "Hibás választás a paraméterre"
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr "Szülő alkatrész"
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr "Paraméter sablon"
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr "Adat"
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr "Paraméter értéke"
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr "Alapértelmezett érték"
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr "Alapértelmezett paraméter érték"
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr "Alkatrész ID vagy alkatrész név"
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr "Egyedi alkatrész ID értéke"
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr "Alkatrész IPN érték"
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr "Szint"
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr "Alkatrészjegyzék szint"
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr "Alkatrészjegyzék tétel"
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr "Szülő alkatrész kiválasztása"
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr "Al alkatrész"
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr "Válaszd ki az alkatrészjegyzékben használandó alkatrészt"
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr "Alkatrészjegyzék mennyiség ehhez az alkatrészjegyzék tételhez"
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr "Ez az alkatrészjegyzék tétel opcionális"
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr "Ez az alkatrészjegyzék tétel fogyóeszköz (készlete nincs követve a gyártásban)"
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr "Többlet"
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr "Becsült gyártási veszteség (abszolút vagy százalékos)"
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr "Alkatrészjegyzék tétel azonosító"
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr "Alkatrészjegyzék tétel megjegyzései"
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr "Ellenőrző összeg"
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr "Alkatrészjegyzék sor ellenőrző összeg"
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr "Jóváhagyva"
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr "Ez a BOM tétel jóvá lett hagyva"
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr "Öröklődött"
 
-#: part/models.py:3792
+#: part/models.py:3813
 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:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr "Változatok"
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr "Alkatrészváltozatok készlet tételei használhatók ehhez az alkatrészjegyzék tételhez"
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr "A mennyiség egész szám kell legyen a követésre kötelezett alkatrészek esetén"
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr "Al alkatrészt kötelező megadni"
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr "Alkatrészjegyzék tétel helyettesítő"
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr "A helyettesítő alkatrész nem lehet ugyanaz mint a fő alkatrész"
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr "Szülő alkatrészjegyzék tétel"
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr "Helyettesítő alkatrész"
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr "1.rész"
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr "2.rész"
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr "Válassz kapcsolódó alkatrészt"
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr "Alkatrész kapcsolat nem hozható létre önmagával"
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr "Már létezik duplikált alkatrész kapcsolat"
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr "Beszerzési pénzneme ennek a készlet tételnek"
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr "Nincs kiválasztva alkatrész"
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr "Válassz kategóriát"
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr "Eredeti alkatrész"
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr "Válassz eredeti alkatrészt a másoláshoz"
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr "Kép másolása"
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr "Kép másolása az eredeti alkatrészről"
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr "Alkatrészjegyzék másolása"
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr "Alkatrészjegyzék másolása az eredeti alkatrészről"
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr "Paraméterek másolása"
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr "Paraméterek másolása az eredeti alkatrészről"
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr "Megjegyzések másolása"
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr "Megjegyzések másolása az eredeti alkatrészről"
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr "Kezdeti készlet mennyiség"
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr "Add meg a kezdeti készlet mennyiséget. Ha nulla akkor nem lesz készlet létrehozva."
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr "Kezdeti készlet hely"
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr "Add meg a kezdeti készlet helyét"
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr "Válassz beszállítót (hagyd üresen ha nem kell létrehozni)"
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr "Válassz gyártót (hagyd üresen ha nem kell létrehozni)"
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr "Gyártói cikkszám"
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr "A kiválasztott cég nem érvényes beszállító"
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr "A kiválasztott cég nem érvényes gyártó"
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr "Van már ilyen gyártói alkatrész"
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr "Van már ilyen beszállítói alkatrész"
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr "Alkatrész másolása"
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr "Kezdeti adatok másolása egy másik alkatrészről"
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr "Kezdeti készlet"
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr "Kezdeti készlet mennyiség létrehozása"
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr "Beszállító információ"
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr "Kezdeti beszállító adatok hozzáadása"
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr "Kategória paraméterek másolása"
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr "Paraméter sablonok másolása a kiválasztott alkatrész kategóriából"
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr "Leltár riport korlátozása bizonyos alkatrészre és variánsra"
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr "Leltár riport korlátozása bizonyos alkatrész kategóriára és az alatta lévőkre"
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr "Leltár riport korlátozása bizonyos készlethelyre és az alatta lévőkre"
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr "Külső készlet nélkül"
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr "Külső helyeken lévő készlet nélkül"
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr "Riport létrehozása"
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr "Riport fájl létrehozása a számított leltár adatokkal"
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr "Alaktrészek frissítése"
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr "Megadott alkatrészek frissítése a számított leltár adatokkal"
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr "Leltár funkció nincs engedélyezve"
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr "Frissítés"
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr "Alkatrész árak frissítése"
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr "Válassz alkatrészt ahonnan az alkatrészjegyzéket másoljuk"
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr "Létező adat törlése"
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr "Meglévő alkatrészjegyzék tételek törlése a másolás előtt"
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr "Örököltekkel együtt"
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr "Sablon alkatrészektől örökölt alkatrészjegyzék tételek használata"
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr "Hibás sorok kihagyása"
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr "Engedély a hibás sorok kihagyására"
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr "Helyettesítő alkatrészek másolása"
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr "Helyettesítő alkatrészek másolása az alkatrészjegyzék tételek másolásakor"
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr "Meglévő alkatrészjegyzék törlése"
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr "Meglévő alkatrészjegyzék tételek törlése a feltöltés előtt"
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr "Nincs megadva alkatrész oszlop"
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr "Több egyező alkatrész is található"
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr "Nincs egyező alkatrész"
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr "Az alkatrész nem lett összetevőként jelölve"
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr "Mennyiség nincs megadva"
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr "Érvénytelen mennyiség"
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr "Legalább egy alkatrészjegyzék tétel szükséges"
 
@@ -7063,8 +7113,8 @@ msgstr "Nincs egyező kép"
 msgid "Hide Part Details"
 msgstr "Részletek elrejtése"
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr "Beszállítói ár"
 
@@ -7079,8 +7129,8 @@ msgstr "Egység költség"
 msgid "No supplier pricing available"
 msgstr "Nincs beszállítói árinfomáció"
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr "Alkatrészjegyzék árazás"
 
@@ -7148,7 +7198,20 @@ msgstr "Ár áttekintés"
 msgid "Refresh Part Pricing"
 msgstr "Árazás frissítése"
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr "Szerkesztés"
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7156,65 +7219,73 @@ msgstr "Árazás frissítése"
 msgid "Last Updated"
 msgstr "Utoljára módosítva"
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr "Árkategória"
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr "Minimum"
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr "Maximum"
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr "Belső árazás"
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr "Beszerzési előzmények"
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr "Alkatrészváltozat árazás"
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr "Általános árazás"
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr "Eladási előzmények"
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr "Nincsenek eladási ár adatok ehhez az alkatrészhez"
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr "Nincsenek ársáv adatok ehhez az alkatrészhez."
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr "Ugrás az áttekintéshez"
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr "Belső ársáv hozzáadása"
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr "Eladási ár"
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr "Eladási ársáv hozzáadása"
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9326,7 +9397,7 @@ msgid "Project Codes"
 msgstr "Projektszámok"
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr "Új projektszám"
 
@@ -9367,14 +9438,6 @@ msgstr "Felhasználói beállítások szerkesztése"
 msgid "Rate"
 msgstr "Arány"
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr "Szerkesztés"
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9398,68 +9461,73 @@ msgstr "Új egyedi mértékegység"
 msgid "No project codes found"
 msgstr "Nem találhatók projektszámok"
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr "csoport"
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr "Projektszám szerkesztése"
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr "Projektszám törlése"
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr "Nincs kategória paraméter sablon"
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr "Sablon szerkesztése"
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr "Sablon törlése"
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr "Kategória paraméter sablon szerkesztése"
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr "Kategória paraméter sablon törlése"
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr "Kategória paraméter sablon létrehozása"
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr "Alkatrész paraméter sablon létrehozása"
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10802,10 +10870,6 @@ msgstr "Haladás"
 msgid "No user information"
 msgstr "Nincs felhasználói információ"
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr "csoport"
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po
index c6d74ba193..a414b16349 100644
--- a/InvenTree/locale/id/LC_MESSAGES/django.po
+++ b/InvenTree/locale/id/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:37\n"
 "Last-Translator: \n"
 "Language-Team: Indonesian\n"
 "Language: id_ID\n"
@@ -56,8 +56,8 @@ msgstr "Masukkan tanggal"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr "Lampiran"
 msgid "Select file to attach"
 msgstr "Pilih file untuk dilampirkan"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr "Komentar"
 msgid "File comment"
 msgstr "Komentar file"
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr ""
 msgid "Invalid choice"
 msgstr "Pilihan tidak valid"
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr "Nama"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr "Nama"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr "Terjadi Kesalahan Server"
 msgid "An error has been logged by the server."
 msgstr "Sebuah kesalahan telah dicatat oleh server."
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "Harus berupa angka yang valid"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -661,7 +661,7 @@ msgstr ""
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr ""
 
@@ -917,14 +917,14 @@ msgstr "Tentang InvenTree"
 msgid "Build must be cancelled before it can be deleted"
 msgstr "Pesanan harus dibatalkan sebelum dapat dihapus"
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr ""
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -993,7 +993,7 @@ msgstr "Referensi Order Produksi"
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1023,11 @@ msgstr "Produksi induk dari produksi ini"
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1168,13 @@ msgid "User who issued this build order"
 msgstr "Pengguna yang menyerahkan order ini"
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1206,7 @@ msgstr ""
 msgid "Priority of this build order"
 msgstr ""
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1244,7 @@ msgstr "Hasil produksi tidak sesuai dengan order produksi"
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr "Jumlah harus lebih besar daripada nol"
@@ -1258,10 +1259,10 @@ msgstr ""
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1426,7 @@ msgid "A list of build outputs must be provided"
 msgstr "Daftar hasil pesanan harus disediakan"
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2032,1365 +2033,1369 @@ msgstr ""
 msgid "Select {name} file to upload"
 msgstr ""
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr ""
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr ""
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr ""
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr ""
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr ""
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr ""
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr ""
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr ""
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr ""
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr ""
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr ""
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr ""
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr ""
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr ""
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr ""
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr ""
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr ""
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr ""
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr ""
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr ""
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr ""
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr ""
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr ""
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr ""
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr ""
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr ""
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr ""
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr ""
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr ""
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr ""
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr ""
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr ""
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr ""
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr ""
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr ""
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr ""
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr ""
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr ""
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr ""
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr ""
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr ""
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr ""
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr ""
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr ""
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr ""
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr ""
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr ""
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr ""
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr ""
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr ""
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr ""
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr ""
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr ""
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr ""
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr ""
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr ""
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr ""
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr ""
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr ""
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr ""
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr ""
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr ""
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr ""
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr ""
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr ""
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr ""
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr ""
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr ""
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr ""
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr ""
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr ""
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr ""
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr ""
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr ""
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr ""
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr ""
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr ""
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr ""
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr ""
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr ""
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr ""
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr ""
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr ""
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr ""
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr ""
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr ""
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr ""
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr ""
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr ""
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr ""
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr ""
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr ""
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr ""
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr ""
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr ""
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr ""
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr ""
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr ""
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr ""
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr ""
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr ""
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr ""
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr ""
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr ""
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr ""
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr ""
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr ""
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr ""
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr ""
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr ""
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr ""
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr ""
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr ""
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr ""
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr ""
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr ""
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr ""
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr ""
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr ""
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr ""
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr ""
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr ""
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr ""
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr ""
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr ""
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr ""
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr ""
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr ""
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr ""
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr ""
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr ""
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr ""
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr ""
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr ""
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr ""
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr ""
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr ""
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr ""
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr ""
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr ""
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr ""
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr ""
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr ""
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr ""
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr ""
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr ""
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr ""
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr ""
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr ""
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr ""
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr ""
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr ""
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr ""
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr ""
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr ""
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr ""
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr "Surel diperlukan"
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr ""
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr ""
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr ""
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr ""
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr ""
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr ""
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr ""
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr ""
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr ""
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr ""
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr ""
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr ""
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr ""
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr ""
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr ""
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr ""
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr ""
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr ""
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr ""
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr ""
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr ""
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr ""
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr ""
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr ""
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr ""
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr ""
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr ""
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr ""
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr ""
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr ""
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr ""
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr ""
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr ""
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr ""
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr ""
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr ""
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr ""
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr ""
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr ""
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr ""
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr ""
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr ""
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr ""
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr ""
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr ""
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr ""
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr ""
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr ""
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr ""
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr ""
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr ""
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr ""
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr ""
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr ""
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr ""
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr ""
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr ""
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr ""
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr ""
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr ""
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr ""
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr ""
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr ""
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr ""
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr ""
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr ""
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr ""
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr ""
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr ""
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr ""
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr ""
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr ""
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr ""
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr ""
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr ""
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr ""
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr ""
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr ""
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr ""
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr ""
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr ""
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr ""
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr ""
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr ""
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr ""
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr ""
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr ""
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr ""
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr ""
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr ""
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr ""
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr ""
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr ""
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr ""
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr ""
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr ""
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr ""
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr ""
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr ""
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr ""
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr ""
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr ""
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr ""
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr ""
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr ""
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr ""
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3398,23 +3403,23 @@ msgstr ""
 msgid "Price"
 msgstr ""
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr ""
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr ""
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr ""
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3423,101 +3428,101 @@ msgstr ""
 msgid "Active"
 msgstr ""
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr ""
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr ""
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr ""
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr ""
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr ""
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr ""
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr ""
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr ""
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr ""
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr ""
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr ""
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr ""
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr ""
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr ""
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr ""
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr ""
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr ""
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr ""
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr ""
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr ""
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr ""
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr ""
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr ""
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3527,31 +3532,31 @@ msgstr ""
 msgid "Image"
 msgstr ""
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr ""
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3806,7 +3811,7 @@ msgstr ""
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3821,7 +3826,7 @@ msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3867,7 +3872,7 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3893,7 +3898,7 @@ msgstr ""
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3911,7 +3916,7 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3919,7 +3924,7 @@ msgstr ""
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -3936,7 +3941,7 @@ msgid "Supplier part description"
 msgstr ""
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4783,7 +4788,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr ""
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr ""
 
@@ -5478,38 +5483,42 @@ msgstr ""
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr ""
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr ""
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr ""
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr ""
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr ""
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr ""
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr ""
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr ""
@@ -5556,11 +5565,13 @@ msgstr ""
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5577,7 +5588,7 @@ msgstr ""
 msgid "Category Path"
 msgstr ""
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5600,16 +5611,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr ""
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr ""
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr ""
@@ -5660,7 +5673,7 @@ msgstr ""
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr ""
@@ -5694,7 +5707,7 @@ msgid "Default keywords for parts in this category"
 msgstr ""
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr ""
 
@@ -5741,7 +5754,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr ""
 
@@ -5765,10 +5778,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr ""
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5876,151 +5889,159 @@ msgstr ""
 msgid "Sell multiple"
 msgstr ""
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6028,567 +6049,596 @@ msgstr ""
 msgid "Date"
 msgstr ""
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr ""
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr ""
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr ""
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr ""
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr ""
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr ""
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr ""
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr ""
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr ""
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr ""
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr ""
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr ""
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr ""
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr ""
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr ""
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr ""
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr ""
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr ""
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr ""
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr ""
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr "Item tagihan material"
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr ""
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr ""
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr ""
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr ""
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr ""
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr ""
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr ""
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr ""
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr ""
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr ""
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr ""
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr ""
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr ""
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr ""
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr ""
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr ""
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr ""
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr ""
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr ""
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr ""
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr ""
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr ""
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr ""
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr ""
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr ""
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr ""
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7062,8 +7112,8 @@ msgstr ""
 msgid "Hide Part Details"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr ""
 
@@ -7078,8 +7128,8 @@ msgstr ""
 msgid "No supplier pricing available"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7147,7 +7197,20 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7155,65 +7218,73 @@ msgstr ""
 msgid "Last Updated"
 msgstr ""
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr ""
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr ""
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9325,7 +9396,7 @@ msgid "Project Codes"
 msgstr ""
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr ""
 
@@ -9366,14 +9437,6 @@ msgstr ""
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr ""
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9397,68 +9460,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10801,10 +10869,6 @@ msgstr ""
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index 95e9371847..cfe7177d06 100644
--- a/InvenTree/locale/it/LC_MESSAGES/django.po
+++ b/InvenTree/locale/it/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Italian\n"
 "Language: it_IT\n"
@@ -56,8 +56,8 @@ msgstr "Inserisci la data"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr "Allegato"
 msgid "Select file to attach"
 msgstr "Seleziona file da allegare"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr "Commento"
 msgid "File comment"
 msgstr "Commento del file"
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr "Nomi duplicati non possono esistere sotto lo stesso genitore"
 msgid "Invalid choice"
 msgstr "Scelta non valida"
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr "Nome"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr "Nome"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr "Errore del server"
 msgid "An error has been logged by the server."
 msgstr "Un errore è stato loggato dal server."
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "Deve essere un numero valido"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -661,7 +661,7 @@ msgstr ""
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr "Controllo in background non riuscito"
 
@@ -917,14 +917,14 @@ msgstr "Informazioni Su InvenTree"
 msgid "Build must be cancelled before it can be deleted"
 msgstr "La produzione deve essere annullata prima di poter essere eliminata"
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr "Consumabile"
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -993,7 +993,7 @@ msgstr "Riferimento Ordine Di Produzione"
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1023,11 @@ msgstr "Ordine di produzione a cui questa produzione viene assegnata"
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1168,13 @@ msgid "User who issued this build order"
 msgstr "Utente che ha emesso questo ordine di costruzione"
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1206,7 @@ msgstr "Priorità di produzione"
 msgid "Priority of this build order"
 msgstr "Priorità di questo ordine di produzione"
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1244,7 @@ msgstr "L'output della produzione non corrisponde all'ordine di compilazione"
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr "La quantità deve essere maggiore di zero"
@@ -1258,10 +1259,10 @@ msgstr ""
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1426,7 @@ msgid "A list of build outputs must be provided"
 msgstr "Deve essere fornito un elenco dei risultati di produzione"
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2032,1365 +2033,1369 @@ msgstr "{name.title()} File"
 msgid "Select {name} file to upload"
 msgstr "Seleziona il file {name} da caricare"
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr "Aggiornato"
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr "Orario dell'ultimo aggiornamento"
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr "Codice unico del progetto"
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr "Descrizione del progetto"
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole)"
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr "Valore impostazioni"
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr "Il valore specificato non è un opzione valida"
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr "Il valore deve essere un valore booleano"
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr "Il valore deve essere un intero"
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr "La stringa chiave deve essere univoca"
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr "Nessun gruppo"
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr "Un dominio vuoto non è consentito."
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr "Nome dominio non valido: {domain}"
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr "Riavvio richiesto"
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr "È stata modificata un'impostazione che richiede un riavvio del server"
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr "Nome Istanza Del Server"
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr "Descrittore stringa per l'istanza del server"
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr "Utilizza nome istanza"
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr "Usa il nome dell'istanza nella barra del titolo"
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr "Limita visualizzazione `Informazioni`"
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr "Mostra la modalità `Informazioni` solo ai superusers"
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr "Nome azienda"
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr "Nome interno dell'azienda"
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr "URL Base"
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr "URL di base per l'istanza del server"
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr "Valuta predefinita"
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr ""
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr "giorni"
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr "Scarica dall'URL"
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr "Consenti il download di immagini e file remoti da URL esterno"
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr "Limite Dimensione Download"
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr "Dimensione massima consentita per il download dell'immagine remota"
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr "User-agent utilizzato per scaricare dall'URL"
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr "Consenti di sovrascrivere l'user-agent utilizzato per scaricare immagini e file da URL esterno (lasciare vuoto per il predefinito)"
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr "Richiesta conferma"
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr "Richiede una conferma esplicita dell'utente per una determinata azione."
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr "Profondità livelli"
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr "Profondità predefinita per la visualizzazione ad albero. I livelli più in alto possono essere caricati più lentamente quando necessari."
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr "Aggiorna intervallo di controllo"
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr "Quanto spesso controllare gli aggiornamenti (impostare a zero per disabilitare)"
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr "Backup automatico"
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr "Abilita il backup automatico di database e file multimediali"
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr "Intervallo Di Backup Automatico"
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr "Definisci i giorni intercorrenti tra un backup automatico e l'altro"
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr ""
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr "I risultati delle attività in background verranno eliminati dopo un determinato numero di giorni"
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr ""
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr "I log di errore verranno eliminati dopo il numero specificato di giorni"
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr ""
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr "Le notifiche dell'utente verranno eliminate dopo il numero di giorni specificato"
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr "Supporto Codice A Barre"
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr "Codice a barre inserito scaduto"
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr "Tempo di ritardo di elaborazione codice a barre"
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr "Codice a Barre Supporto Webcam"
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr "Consenti la scansione del codice a barre tramite webcam nel browser"
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr ""
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr "Abilita il campo revisione per l'articolo"
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr "IPN Regex"
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr "Schema di espressione regolare per l'articolo corrispondente IPN"
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr "Consenti duplicati IPN"
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr "Permetti a più articoli di condividere lo stesso IPN"
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr "Permetti modifiche al part number interno (IPN)"
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr "Consenti di modificare il valore del part number durante la modifica di un articolo"
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr "Copia I Dati Della distinta base dell'articolo"
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr "Copia i dati della Distinta Base predefinita quando duplichi un articolo"
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr "Copia I Dati Parametro dell'articolo"
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr "Copia i dati dei parametri di default quando si duplica un articolo"
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr "Copia I Dati dell'Articolo Test"
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr "Copia i dati di prova di default quando si duplica un articolo"
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr "Copia Template Parametri Categoria"
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr "Copia i modelli dei parametri categoria quando si crea un articolo"
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr "Modello"
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr "Gli articoli sono modelli per impostazione predefinita"
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr "Assemblaggio"
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr "Gli articoli possono essere assemblate da altri componenti per impostazione predefinita"
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr "Componente"
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr "Gli articoli possono essere assemblati da altri componenti per impostazione predefinita"
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr "Acquistabile"
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr "Gli articoli sono acquistabili per impostazione predefinita"
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr "Vendibile"
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr "Gli articoli sono acquistabili per impostazione predefinita"
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr "Tracciabile"
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr "Gli articoli sono tracciabili per impostazione predefinita"
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr "Virtuale"
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr "Gli articoli sono virtuali per impostazione predefinita"
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr "Mostra l'importazione nelle viste"
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr "Mostra la procedura guidata di importazione in alcune viste articoli"
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr "Mostra articoli correlati"
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr "Visualizza parti correlate per ogni articolo"
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr "Dati iniziali dello stock"
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr "Consentire la creazione di uno stock iniziale quando si aggiunge una nuova parte"
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr "Dati iniziali del fornitore"
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr "Consentire la creazione dei dati iniziali del fornitore quando si aggiunge una nuova parte"
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr "Formato di visualizzazione del nome articolo"
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr "Formato per visualizzare il nome dell'articolo"
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr "Icona predefinita Categoria Articolo"
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr "Icona predefinita Categoria Articolo (vuoto significa nessuna icona)"
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr "Usa Prezzi Fornitore"
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr "Includere le discontinuità di prezzo del fornitore nei calcoli generali dei prezzi"
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr "Ignora la Cronologia Acquisti"
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr "Cronologia dei prezzi dell'ordine di acquisto del fornitore superati con discontinuità di prezzo"
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr "Utilizzare i prezzi degli articoli in stock"
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr "Utilizzare i prezzi dei dati di magazzino inseriti manualmente per il calcolo dei prezzi"
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr "Età dei prezzi degli articoli in stock"
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr "Escludere dal calcolo dei prezzi gli articoli in giacenza più vecchi di questo numero di giorni"
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr "Utilizza Variazione di Prezzo"
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr "Includi la variante dei prezzi nei calcoli dei prezzi complessivi"
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr "Solo Varianti Attive"
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr "Utilizza solo articoli di varianti attive per calcolare i prezzi delle varianti"
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr ""
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr "Numero di giorni prima che il prezzo dell'articolo venga aggiornato automaticamente"
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr "Prezzi interni"
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr "Abilita prezzi interni per gli articoli"
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr "Sovrascrivi Prezzo Interno"
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr "Se disponibile, i prezzi interni sostituiscono i calcoli della fascia di prezzo"
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr "Abilita stampa etichette"
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr "Abilita la stampa di etichette dall'interfaccia web"
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr "Etichetta Immagine DPI"
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr "Risoluzione DPI quando si generano file di immagine da fornire ai plugin di stampa per etichette"
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr "Abilita Report di Stampa"
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr "Abilita generazione di report di stampa"
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr "Modalità Debug"
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr "Genera report in modalità debug (output HTML)"
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr "Dimensioni pagina"
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr "Dimensione predefinita della pagina per i report PDF"
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr "Abilita Rapporto di Prova"
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr "Abilita generazione di stampe di prova"
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr "Allega Rapporto di Prova"
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr "Quando si stampa un rapporto di prova, allegare una copia del rapporto di prova all'elemento di magazzino associato"
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr "Seriali Unici Globali"
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr "I numeri di serie per gli articoli di magazzino devono essere univoci"
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr "Auto Riempimento Numeri Seriali"
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr "Auto riempimento numeri nel modulo"
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr "Elimina scorte esaurite"
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr "Determina il comportamento predefinito quando un elemento stock è esaurito"
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr "Modello Codice a Barre"
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr "Modello per la generazione di codici batch predefiniti per gli elementi stock"
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr "Scadenza giacenza"
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr "Abilita funzionalità di scadenza della giacenza"
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr "Vendi giacenza scaduta"
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr "Consenti la vendita di stock scaduti"
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr "Tempo di Scorta del Magazzino"
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr "Numero di giorni in cui gli articoli in magazzino sono considerati obsoleti prima della scadenza"
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr "Crea giacenza scaduta"
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr "Permetti produzione con stock scaduto"
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr "Controllo della proprietà della giacenza"
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr "Abilita il controllo della proprietà sulle posizioni e gli oggetti in giacenza"
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr "Icona Predefinita Ubicazione di Magazzino"
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr "Icona Predefinita Ubicazione di Magazzino (vuoto significa nessuna icona)"
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr ""
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr "Modello Di Riferimento Ordine Di Produzione"
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr "Modello richiesto per generare il campo di riferimento ordine di produzione"
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr ""
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr ""
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr ""
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr ""
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr ""
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr "Modello Di Riferimento Ordine Di Vendita"
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr "Modello richiesto per generare il campo di riferimento ordine di vendita"
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr "Spedizione Predefinita Ordine Di Vendita"
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr "Abilita la creazione di spedizioni predefinite con ordini di vendita"
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr "Modifica Ordini Di Vendita Completati"
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr "Consenti la modifica degli ordini di vendita dopo che sono stati spediti o completati"
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr "Modello di Riferimento Ordine D'Acquisto"
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr "Modello richiesto per generare il campo di riferimento ordine di acquisto"
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr "Modifica Ordini Di Acquisto Completati"
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr "Consenti la modifica degli ordini di acquisto dopo che sono stati spediti o completati"
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr "Abilita password dimenticata"
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr "Abilita la funzione password dimenticata nelle pagine di accesso"
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr "Abilita registrazione"
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr "Abilita auto-registrazione per gli utenti nelle pagine di accesso"
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr "SSO abilitato"
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr "Abilita SSO nelle pagine di accesso"
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr "Abilita registrazione SSO"
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr "Abilita l'auto-registrazione tramite SSO per gli utenti nelle pagine di accesso"
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr "Email richiesta"
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr "Richiedi all'utente di fornire una email al momento dell'iscrizione"
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr "Riempimento automatico degli utenti SSO"
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr "Compila automaticamente i dettagli dell'utente dai dati dell'account SSO"
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr "Posta due volte"
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr "Al momento della registrazione chiedere due volte all'utente l'indirizzo di posta elettronica"
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr "Password due volte"
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr "Al momento della registrazione chiedere agli utenti due volte l'inserimento della password"
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr "Domini consentiti"
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr "Gruppo iscrizione"
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr "Gruppo a cui i nuovi utenti vengono assegnati al momento della registrazione"
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr "Applica MFA"
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr "Gli utenti devono utilizzare la sicurezza a due fattori."
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr "Controlla i plugin all'avvio"
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr "Controlla che tutti i plugin siano installati all'avvio - abilita in ambienti contenitore"
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr "Abilita l'integrazione URL"
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr "Attiva plugin per aggiungere percorsi URL"
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr "Attiva integrazione navigazione"
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr "Abilita i plugin per l'integrazione nella navigazione"
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr "Abilita l'app integrata"
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr "Abilita plugin per aggiungere applicazioni"
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr "Abilita integrazione pianificazione"
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr "Abilita i plugin per eseguire le attività pianificate"
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr "Abilita eventi integrati"
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr "Abilita plugin per rispondere agli eventi interni"
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr ""
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr "Funzionalità Dell'Inventario"
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr "Abilita la funzionalità d'inventario per la registrazione dei livelli di magazzino e il calcolo del valore di magazzino"
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr "Inventario periodico automatico"
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr "Numero di giorni tra la registrazione automatica dell'inventario (imposta 0 per disabilitare)"
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr "I rapporti d'inventario verranno eliminati dopo il numero specificato di giorni"
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole"
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr "Nascondi Articoli Inattivi"
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr "Mostra articoli sottoscritti"
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr "Mostra gli articoli sottoscritti nella homepage"
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr "Mostra le categorie sottoscritte"
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr "Mostra le categorie dei componenti sottoscritti nella homepage"
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr "Mostra ultimi articoli"
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr "Mostra gli ultimi articoli sulla homepage"
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr "Mostra distinta base non convalidata"
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr "Mostra le distinte base che attendono la convalida sulla homepage"
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr "Mostra le modifiche recenti alle giacenze"
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr "Mostra le giacenze modificate di recente nella homepage"
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr "Mostra disponibilità scarsa delle giacenze"
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr "Mostra disponibilità scarsa degli articoli sulla homepage"
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr "Mostra scorte esaurite"
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr "Mostra disponibilità scarsa delle scorte degli articoli sulla homepage"
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr "Mostra scorte necessarie"
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr "Mostra le scorte degli articoli necessari per la produzione sulla homepage"
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr "Mostra scorte esaurite"
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr "Mostra gli articoli stock scaduti nella home page"
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr "Mostra scorte obsolete"
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr "Mostra gli elementi obsoleti esistenti sulla home page"
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr "Mostra produzioni in attesa"
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr "Mostra produzioni in attesa sulla homepage"
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr "Mostra produzioni in ritardo"
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr "Mostra produzioni in ritardo sulla home page"
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr "Mostra ordini di produzione inevasi"
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr "Mostra ordini di produzione inevasi sulla home page"
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr "Mostra Ordini di Produzione in ritardo"
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr "Mostra Ordini di Produzione in ritardo sulla home page"
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr "Mostra Ordini di Vendita inevasi"
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr "Mostra Ordini di Vendita inevasi sulla home page"
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr "Mostra Ordini di Vendita in ritardo"
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr "Mostra Ordini di Vendita in ritardo sulla home page"
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr "Mostra Notizie"
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr "Mostra notizie sulla home page"
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr "Visualizzazione dell'etichetta in linea"
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file"
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr "Stampante per etichette predefinita"
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr "Configura quale stampante di etichette deve essere selezionata per impostazione predefinita"
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr "Visualizzazione dell'etichetta in linea"
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file"
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr "Cerca Articoli"
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr "Mostra articoli della ricerca nella finestra di anteprima"
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr ""
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr "Mostra articoli del fornitore nella finestra di anteprima"
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr "Cerca Articoli Produttore"
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr "Mostra articoli del produttore nella finestra di anteprima"
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr "Nascondi Articoli Inattivi"
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr "Escludi articoli inattivi dalla finestra di anteprima della ricerca"
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr "Cerca Categorie"
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr "Mostra categorie articolo nella finestra di anteprima di ricerca"
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr "Cerca Giacenze"
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr "Mostra articoli in giacenza nella finestra di anteprima della ricerca"
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr "Nascondi elementi non disponibili"
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr "Escludi gli elementi stock che non sono disponibili dalla finestra di anteprima di ricerca"
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr "Cerca Ubicazioni"
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr "Mostra ubicazioni delle giacenze nella finestra di anteprima di ricerca"
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr "Cerca Aziende"
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr "Mostra le aziende nella finestra di anteprima di ricerca"
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr "Cerca Ordini Di Produzione"
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr "Mostra gli ordini di produzione nella finestra di anteprima di ricerca"
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr "Cerca Ordini di Acquisto"
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr "Mostra gli ordini di acquisto nella finestra di anteprima di ricerca"
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr "Escludi Ordini D'Acquisto Inattivi"
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr "Escludi ordini di acquisto inattivi dalla finestra di anteprima di ricerca"
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr "Cerca Ordini Di Vendita"
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr "Visualizzazione degli ordini di vendita nella finestra di anteprima della ricerca"
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr "Escludi Ordini Di Vendita Inattivi"
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr "Escludi ordini di vendita inattivi dalla finestra di anteprima di ricerca"
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr "Cerca Ordini Di Reso"
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr "Risultati Dell'Anteprima Di Ricerca"
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr "Numero di risultati da visualizzare in ciascuna sezione della finestra di anteprima della ricerca"
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr "Ricerca con regex"
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr "Mostra quantità nei moduli"
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr "Visualizzare la quantità di pezzi disponibili in alcuni moduli"
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr "Il tasto Esc chiude i moduli"
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr "Utilizzare il tasto Esc per chiudere i moduli modali"
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr "Barra di navigazione fissa"
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr "La posizione della barra di navigazione è fissata nella parte superiore dello schermo"
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr "Formato Data"
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr "Formato predefinito per visualizzare le date"
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr "Programmazione Prodotto"
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr "Mostra informazioni sulla pianificazione del prodotto"
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr "Inventario Prodotto"
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr "Visualizza le informazioni d'inventario dell'articolo (se la funzionalità d'inventario è abilitata)"
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr "Lunghezza Stringa Tabella"
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr "Limite massimo di lunghezza per le stringhe visualizzate nelle viste della tabella"
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr "Quantità prezzo limite"
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3398,23 +3403,23 @@ msgstr "Quantità prezzo limite"
 msgid "Price"
 msgstr "Prezzo"
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr "Prezzo unitario in quantità specificata"
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr "Scadenza"
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr "Scadenza in cui questa notifica viene ricevuta"
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr "Nome per questa notifica"
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3423,101 +3428,101 @@ msgstr "Nome per questa notifica"
 msgid "Active"
 msgstr "Attivo"
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr "È questa notifica attiva"
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr "Token"
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr "Token per l'accesso"
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr "Segreto"
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr "Segreto condiviso per HMAC"
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr "ID Messaggio"
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr "Identificatore unico per questo messaggio"
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr "Host"
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr "Host da cui questo messaggio è stato ricevuto"
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr "Intestazione"
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr "Intestazione di questo messaggio"
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr "Contenuto"
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr "Contenuto di questo messaggio"
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr "Scadenza in cui questo messaggio è stato ricevuto"
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr "Lavorato il"
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr "Il lavoro su questo messaggio è terminato?"
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr "Id"
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr "Titolo"
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr "Pubblicato"
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr "Autore"
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr "Riepilogo"
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr "Letto"
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr "Queste notizie sull'elemento sono state lette?"
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3527,31 +3532,31 @@ msgstr "Queste notizie sull'elemento sono state lette?"
 msgid "Image"
 msgstr "Immagine"
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr "File immagine"
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3806,7 +3811,7 @@ msgstr "Seleziona articolo"
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3821,7 +3826,7 @@ msgid "Select manufacturer"
 msgstr "Seleziona Produttore"
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3867,7 +3872,7 @@ msgid "Parameter value"
 msgstr "Valore del parametro"
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3893,7 +3898,7 @@ msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3911,7 +3916,7 @@ msgid "Select supplier"
 msgstr "Seleziona fornitore"
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3919,7 +3924,7 @@ msgstr "Seleziona fornitore"
 msgid "SKU"
 msgstr "SKU"
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr "Unità di giacenza magazzino fornitore"
 
@@ -3936,7 +3941,7 @@ msgid "Supplier part description"
 msgstr "Descrizione articolo fornitore"
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4783,7 +4788,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr "Solo gli articoli vendibili possono essere assegnati a un ordine di vendita"
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr "Prezzo di Vendita"
 
@@ -5478,38 +5483,42 @@ msgstr "Aggiornato {part} prezzo unitario a {price}"
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr "Aggiornato {part} unità prezzo a {price} e quantità a {qty}"
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr "Codice Articolo"
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr "Nome Articolo"
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr "Descrizione Articolo"
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr "IPN - Numero di riferimento interno"
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr "Revisione"
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr "Parole Chiave"
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr "Id Categoria"
@@ -5556,11 +5565,13 @@ msgstr "Utilizzato In"
 msgid "Building"
 msgstr "In Costruzione"
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr "Costo Minimo"
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr "Costo Massimo"
 
@@ -5577,7 +5588,7 @@ msgstr "Nome Principale"
 msgid "Category Path"
 msgstr "Percorso Categoria"
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5600,16 +5611,18 @@ msgstr "ID Elemento Distinta Base"
 msgid "Parent IPN"
 msgstr "IPN Principale"
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr "IPN Articolo"
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr "Prezzo Minimo"
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr "Prezzo Massimo"
@@ -5660,7 +5673,7 @@ msgstr "Disponibilità in magazzino"
 msgid "Input quantity for price calculation"
 msgstr "Digita la quantità per il calcolo del prezzo"
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr "Categoria Articoli"
@@ -5694,7 +5707,7 @@ msgid "Default keywords for parts in this category"
 msgstr "Parole chiave predefinite per gli articoli in questa categoria"
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr "Icona"
 
@@ -5741,7 +5754,7 @@ msgstr "Un articolo con questo Nome, IPN e Revisione esiste già."
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr "Gli articoli non possono essere assegnati a categorie articolo principali!"
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr "Nome articolo"
 
@@ -5765,10 +5778,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca"
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5876,151 +5889,159 @@ msgstr "Ultimo Inventario"
 msgid "Sell multiple"
 msgstr "Vendita multipla"
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr "Valuta utilizzata per calcolare i prezzi"
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr "Costo Minimo Distinta Base"
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr "Costo minimo dei componenti dell'articolo"
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr "Costo Massimo Distinta Base"
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr "Costo massimo dei componenti dell'articolo"
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr "Importo Acquisto Minimo"
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr "Costo minimo di acquisto storico"
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr "Importo massimo acquisto"
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr "Costo massimo di acquisto storico"
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr "Prezzo Interno Minimo"
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr "Costo minimo basato su interruzioni di prezzo interne"
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr "Prezzo Interno Massimo"
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr "Costo massimo basato su interruzioni di prezzo interne"
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr "Prezzo Minimo Fornitore"
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr "Prezzo minimo articolo da fornitori esterni"
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr "Prezzo Massimo Fornitore"
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr "Prezzo massimo dell'articolo proveniente da fornitori esterni"
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr "Variazione di costo minimo"
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr "Costo minimo calcolato di variazione dell'articolo"
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr "Massima variazione di costo"
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr "Costo massimo calcolato di variazione dell'articolo"
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr "Costo minimo totale calcolato"
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr "Costo massimo totale calcolato"
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr "Prezzo Di Vendita Minimo"
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr "Prezzo minimo di vendita basato sulle interruzioni di prezzo"
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr "Prezzo Di Vendita Massimo"
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr "Prezzo massimo di vendita basato sulle interruzioni di prezzo"
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr "Costo Di Vendita Minimo"
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr "Prezzo storico minimo di vendita"
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr "Costo Di Vendita Minimo"
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr "Prezzo storico massimo di vendita"
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr "Articolo per l'inventario"
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr "Contatore Elemento"
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr "Numero di scorte individuali al momento dell'inventario"
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr "Totale delle scorte disponibili al momento dell'inventario"
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6028,567 +6049,596 @@ msgstr "Totale delle scorte disponibili al momento dell'inventario"
 msgid "Date"
 msgstr "Data"
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr "Data in cui è stato effettuato l'inventario"
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr "Note aggiuntive"
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr "Utente che ha eseguito questo inventario"
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr "Costo Minimo Scorta"
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr "Costo minimo stimato di magazzino a disposizione"
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr "Costo Massimo Scorte"
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr "Costo massimo stimato di magazzino a disposizione"
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr "Report"
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr "File Report Inventario (generato internamente)"
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr "Conteggio Articolo"
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr "Numero di articoli oggetto d'inventario"
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr "Utente che ha richiesto questo report inventario"
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr "Il modello di prova può essere creato solo per gli articoli rintracciabili"
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr "Una prova con questo nome esiste già per questo articolo"
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr "Nome Test"
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr "Inserisci un nome per la prova"
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr "Descrizione Di Prova"
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr "Inserisci descrizione per questa prova"
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr "Richiesto"
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr "Questa prova è necessaria per passare?"
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr "Valore richiesto"
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr "Questa prova richiede un valore quando si aggiunge un risultato di prova?"
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr "Allegato Richiesto"
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr "Questa prova richiede un file allegato quando si aggiunge un risultato di prova?"
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr "Il nome del modello del parametro deve essere univoco"
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr "Nome Parametro"
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr "Descrizione del parametro"
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr "Articolo principale"
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr "Modello Parametro"
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr "Dati"
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr "Valore del Parametro"
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr "Valore Predefinito"
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr "Valore Parametro Predefinito"
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr "ID articolo o nome articolo"
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr "Valore ID articolo univoco"
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr "Valore IPN articolo"
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr "Livello"
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr "Livello distinta base"
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr "Distinta base (Bom)"
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr "Seleziona articolo principale"
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr "Articolo subordinato"
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr "Seleziona l'articolo da utilizzare nella Distinta Base"
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr "Quantità Distinta Base per questo elemento Distinta Base"
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr "Questo elemento della Distinta Base è opzionale"
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr "Questo elemento della Distinta Base è consumabile (non è tracciato negli ordini di produzione)"
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr "Eccedenza"
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr "Quantità stimata scarti di produzione (assoluta o percentuale)"
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr "Riferimento Elemento Distinta Base"
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr "Note Elemento Distinta Base"
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr "Codice di controllo"
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr "Codice di controllo Distinta Base"
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr "Convalidato"
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr "Questo elemento della Distinta Base viene ereditato dalle Distinte Base per gli articoli varianti"
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr "Consenti Le Varianti"
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr "Gli elementi in giacenza per gli articoli varianti possono essere utilizzati per questo elemento Distinta Base"
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr "La quantità deve essere un valore intero per gli articoli rintracciabili"
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr "L'articolo subordinato deve essere specificato"
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr "Elemento Distinta Base Sostituito"
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr "La parte sostituita non può essere la stessa dell'articolo principale"
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr "Elemento principale Distinta Base"
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr "Sostituisci l'Articolo"
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr "Articolo 1"
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr "Articolo 2"
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr "Seleziona Prodotto Relativo"
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr "Non si può creare una relazione tra l'articolo e sé stesso"
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr "La relazione duplicata esiste già"
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr "Valuta di acquisto di questo articolo in stock"
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr ""
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr "Articolo Originale"
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr "Seleziona l'articolo originale da duplicare"
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr "Copia immagine"
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr "Copia immagine dall'articolo originale"
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr "Copia Distinta Base"
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr "Copia fattura dei materiali dall'articolo originale"
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr "Copia parametri"
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr "Copia i dati dei parametri dall'articolo originale"
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr "Quantità iniziale"
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr "Specificare la quantità iniziale disponibile per questo Articolo. Se la quantità è zero, non viene aggiunta alcuna quantità."
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr "Ubicazione Iniziale Magazzino"
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr "Specificare l'ubicazione iniziale del magazzino per questo Articolo"
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr "Seleziona il fornitore (o lascia vuoto per saltare)"
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr "Seleziona il produttore (o lascia vuoto per saltare)"
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr "Codice articolo Produttore"
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr "L'azienda selezionata non è un fornitore valido"
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr "L'azienda selezionata non è un produttore valido"
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr "L'articolo del produttore che corrisponde a questo MPN esiste già"
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr "L'articolo del fornitore che corrisponde a questo SKU esiste già"
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr "Duplica articolo"
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr "Copia i dati iniziali da un altro Articolo"
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr "Stock iniziale"
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr "Crea Articolo con quantità di scorta iniziale"
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr "Informazioni Fornitore"
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr "Aggiungi le informazioni iniziali del fornitore per questo articolo"
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr "Copia Parametri Categoria"
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr "Copia i parametri dai modelli della categoria articolo selezionata"
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr "Limitare il report d'inventario ad un articolo particolare e a eventuali articoli varianti"
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr "Limita il report d'inventario ad una particolare categoria articolo, e a eventuali categorie secondarie"
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr "Limita il report d'inventario ad una particolare ubicazione di magazzino, e a eventuali ubicazioni secondarie"
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr "Genera Report"
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr "Genera file di report contenente dati di inventario calcolati"
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr "Aggiorna Articoli"
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr "Aggiorna gli articoli specificati con i dati calcolati di inventario"
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr "La funzione Inventario non è abilitata"
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr "Aggiorna"
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr "Aggiorna i prezzi per questo articolo"
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr "Seleziona l'articolo da cui copiare la distinta base"
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr "Rimuovi Dati Esistenti"
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr "Rimuovi elementi distinta base esistenti prima di copiare"
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr "Includi Ereditato"
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr "Includi gli elementi Distinta Base ereditati da prodotti template"
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr "Salta Righe Non Valide"
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr "Abilita questa opzione per saltare le righe non valide"
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr "Copia Articoli sostitutivi"
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr "Copia articoli sostitutivi quando duplichi gli elementi distinta base"
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr "Cancella Distinta Base esistente"
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr "Rimuovi elementi distinta base esistenti prima del caricamento"
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr "Nessuna colonna articolo specificata"
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr "Trovati più articoli corrispondenti"
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr "Nessun articolo corrispondente trovato"
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr "L'articolo non è indicato come componente"
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr "Quantità non fornita"
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr "Quantità non valida"
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr "Almeno un elemento della distinta base è richiesto"
 
@@ -7062,8 +7112,8 @@ msgstr "Nessuna immagine corrispondente trovata"
 msgid "Hide Part Details"
 msgstr "Nascondi Dettagli dell'Articolo"
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr "Prezzo del Fornitore"
 
@@ -7078,8 +7128,8 @@ msgstr "Costo Unitario"
 msgid "No supplier pricing available"
 msgstr "Nessun prezzo del fornitore disponibile"
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr "Prezzi Distinta Base"
 
@@ -7147,7 +7197,20 @@ msgstr "Panoramica prezzi"
 msgid "Refresh Part Pricing"
 msgstr "Aggiorna prezzo articolo"
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr "Modifica"
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7155,65 +7218,73 @@ msgstr "Aggiorna prezzo articolo"
 msgid "Last Updated"
 msgstr "Ultimo aggiornamento"
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr "Categoria prezzo"
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr "Minimo"
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr "Massimo"
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr "Prezzo interno"
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr "Cronologia acquisti"
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr "Variazione prezzo"
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr "Prezzi Totali"
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr "Storico vendite"
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr "I dati del prezzo di vendita non sono disponibili per questo prodotto"
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr "I dati della fascia di prezzo non sono disponibili per questo prodotto."
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr "Torna al riepilogo"
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr "Aggiungi prezzo interno d'nterruzione"
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr "Prezzo di Vendita"
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr "Aggiungi Prezzo Ribassato di Vendita"
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9325,7 +9396,7 @@ msgid "Project Codes"
 msgstr "Codice del progetto"
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr "Nuovo Codice Del Progetto"
 
@@ -9366,14 +9437,6 @@ msgstr "Modifica Impostazioni Utente"
 msgid "Rate"
 msgstr "Voto"
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr "Modifica"
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9397,68 +9460,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr "Nessun codice progetto trovato"
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr "gruppo"
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr "Modifica Codice Progetto"
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr "Elimina Codice Progetto"
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr "Nessun parametro di categoria trovato"
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr "Modifica Template"
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr "Elimina Template"
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr "Elimina Modello Parametro Categoria"
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr "Crea Template Parametro Categoria"
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr "Crea Parametro Articolo Template"
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10801,10 +10869,6 @@ msgstr "Avanzamento"
 msgid "No user information"
 msgstr "Nessuna informazione utente"
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr "gruppo"
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index 1994bad557..36ab70efea 100644
--- a/InvenTree/locale/ja/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ja/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Japanese\n"
 "Language: ja_JP\n"
@@ -56,8 +56,8 @@ msgstr "日付を入力する"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr "添付ファイル"
 msgid "Select file to attach"
 msgstr "添付ファイルを選択"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr "コメント:"
 msgid "File comment"
 msgstr "ファイルコメント"
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr ""
 msgid "Invalid choice"
 msgstr "無効な選択です"
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr "お名前"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr "お名前"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr ""
 msgid "An error has been logged by the server."
 msgstr ""
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "有効な数字でなければなりません"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -661,7 +661,7 @@ msgstr ""
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr "バックグラウンドワーカーのチェックに失敗しました"
 
@@ -917,14 +917,14 @@ msgstr "InvenTree について"
 msgid "Build must be cancelled before it can be deleted"
 msgstr ""
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr ""
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -993,7 +993,7 @@ msgstr ""
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1023,11 @@ msgstr ""
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1168,13 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1206,7 @@ msgstr "組立優先度"
 msgid "Priority of this build order"
 msgstr ""
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1244,7 @@ msgstr ""
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr ""
@@ -1258,10 +1259,10 @@ msgstr ""
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1426,7 @@ msgid "A list of build outputs must be provided"
 msgstr ""
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2032,1365 +2033,1369 @@ msgstr ""
 msgid "Select {name} file to upload"
 msgstr ""
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr ""
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr ""
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr ""
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr ""
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr ""
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr ""
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr ""
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr ""
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr ""
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr ""
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr ""
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr ""
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr ""
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr ""
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr ""
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr ""
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr ""
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr ""
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr ""
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr ""
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr ""
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr ""
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr ""
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr ""
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr ""
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr ""
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr ""
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr ""
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr "外部URLからの画像ダウンロードを許可する"
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr ""
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr "外部URL画像の最大サイズ"
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr ""
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr ""
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr ""
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr ""
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr ""
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr ""
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr ""
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr ""
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr ""
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr ""
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr ""
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr ""
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr ""
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr ""
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr ""
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr ""
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr ""
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr ""
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr ""
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr ""
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr ""
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr ""
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr ""
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr ""
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr ""
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr ""
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr ""
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr ""
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr ""
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr ""
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr ""
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr ""
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr "テンプレート"
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr "パーツはデフォルトのテンプレートです"
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr "アセンブリ"
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます"
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr "コンポーネント"
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr "パーツはデフォルトでサブコンポーネントとして使用できます"
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr "購入可能"
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr "パーツはデフォルトで購入可能です"
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr "販売可能"
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr "パーツはデフォルトで販売可能です"
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr "追跡可能"
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr "パーツはデフォルトで追跡可能です"
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr ""
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr ""
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr ""
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr ""
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr ""
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr ""
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr ""
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr ""
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr ""
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr ""
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr ""
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr ""
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr ""
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr ""
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr ""
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr ""
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr ""
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr ""
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr ""
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr ""
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr ""
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr ""
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr ""
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr ""
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr ""
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr ""
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr ""
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr ""
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr ""
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr ""
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr ""
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr ""
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr ""
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr ""
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr ""
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr "デバッグモード"
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr ""
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr ""
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr ""
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr ""
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr ""
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr ""
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr ""
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr ""
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr ""
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr "シリアル番号を自動入力"
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr ""
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr ""
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr ""
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr ""
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr ""
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr ""
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr ""
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr ""
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr ""
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr ""
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr ""
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr ""
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr ""
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr ""
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr ""
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr ""
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr ""
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr ""
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr ""
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr ""
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr ""
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr ""
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr ""
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr ""
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr ""
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr ""
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr ""
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr ""
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr ""
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr ""
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr ""
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr ""
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr ""
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr ""
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr ""
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr ""
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr ""
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr "メールアドレスは必須です"
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr ""
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr ""
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr ""
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr ""
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr ""
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr ""
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr ""
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr ""
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr ""
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr ""
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr ""
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr ""
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr ""
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr ""
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr ""
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr ""
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr ""
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr ""
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr ""
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr ""
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr ""
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr ""
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr ""
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr ""
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr ""
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr ""
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr ""
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr ""
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr ""
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr "非アクティブな部品を非表示"
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr "購読中の部品を表示"
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr ""
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr "購読中のカテゴリを表示"
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr ""
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr ""
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr ""
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr ""
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr ""
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr ""
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr ""
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr ""
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr ""
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr ""
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr ""
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr ""
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr ""
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr ""
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr ""
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr ""
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr ""
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr ""
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr ""
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr ""
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr ""
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr ""
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr ""
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr ""
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr ""
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr ""
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr ""
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr ""
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr ""
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr ""
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr ""
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr ""
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr ""
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr ""
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr ""
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr ""
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr ""
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr ""
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr ""
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr ""
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr ""
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr ""
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr ""
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr ""
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr ""
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr ""
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr ""
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr ""
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr ""
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr ""
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr ""
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr ""
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr ""
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr ""
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr ""
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr ""
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr ""
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr ""
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr ""
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr ""
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr ""
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr ""
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr ""
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr ""
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr ""
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr ""
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr ""
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr ""
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr ""
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr ""
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr ""
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr ""
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr ""
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3398,23 +3403,23 @@ msgstr ""
 msgid "Price"
 msgstr ""
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr ""
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr ""
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr ""
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3423,101 +3428,101 @@ msgstr ""
 msgid "Active"
 msgstr ""
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr ""
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr ""
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr ""
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr ""
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr ""
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr "メッセージ ID:"
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr ""
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr ""
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr ""
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr ""
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr ""
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr ""
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr ""
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr ""
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr ""
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr ""
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr ""
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr ""
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr ""
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr ""
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr ""
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr ""
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr ""
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3527,31 +3532,31 @@ msgstr ""
 msgid "Image"
 msgstr ""
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr ""
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3806,7 +3811,7 @@ msgstr ""
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3821,7 +3826,7 @@ msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3867,7 +3872,7 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3893,7 +3898,7 @@ msgstr ""
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3911,7 +3916,7 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3919,7 +3924,7 @@ msgstr ""
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -3936,7 +3941,7 @@ msgid "Supplier part description"
 msgstr ""
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4783,7 +4788,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr ""
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr ""
 
@@ -5478,38 +5483,42 @@ msgstr ""
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr ""
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr ""
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr ""
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr ""
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr ""
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr ""
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr "キーワード"
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr "カテゴリID"
@@ -5556,11 +5565,13 @@ msgstr ""
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5577,7 +5588,7 @@ msgstr ""
 msgid "Category Path"
 msgstr ""
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5600,16 +5611,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr ""
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr ""
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr ""
@@ -5660,7 +5673,7 @@ msgstr ""
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr "パーツカテゴリ"
@@ -5694,7 +5707,7 @@ msgid "Default keywords for parts in this category"
 msgstr ""
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr ""
 
@@ -5741,7 +5754,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr ""
 
@@ -5765,10 +5778,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr ""
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5876,151 +5889,159 @@ msgstr ""
 msgid "Sell multiple"
 msgstr ""
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6028,567 +6049,596 @@ msgstr ""
 msgid "Date"
 msgstr ""
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr ""
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr ""
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr ""
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr ""
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr ""
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr ""
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr ""
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr ""
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr ""
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr ""
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr ""
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr ""
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr ""
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr ""
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr ""
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr ""
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr ""
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr ""
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr ""
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr ""
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr ""
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr ""
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr ""
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr ""
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr ""
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr ""
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr ""
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr ""
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr ""
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr ""
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr ""
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr ""
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr ""
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr ""
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr ""
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr "カテゴリを選択"
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr ""
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr ""
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr ""
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr ""
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr ""
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr ""
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr ""
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr ""
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr ""
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr ""
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr ""
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr ""
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7062,8 +7112,8 @@ msgstr ""
 msgid "Hide Part Details"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr ""
 
@@ -7078,8 +7128,8 @@ msgstr ""
 msgid "No supplier pricing available"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7147,7 +7197,20 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7155,65 +7218,73 @@ msgstr ""
 msgid "Last Updated"
 msgstr ""
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr "価格カテゴリ"
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr ""
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9325,7 +9396,7 @@ msgid "Project Codes"
 msgstr ""
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr ""
 
@@ -9366,14 +9437,6 @@ msgstr ""
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr ""
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9397,68 +9460,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr "カテゴリパラメータテンプレートはありません"
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr "カテゴリパラメータテンプレートを編集"
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr "カテゴリパラメータテンプレートを削除"
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr "カテゴリパラメータテンプレートを作成"
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10801,10 +10869,6 @@ msgstr "進捗"
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po
index 0ab97f64ee..5a5c5dbc8d 100644
--- a/InvenTree/locale/ko/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ko/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Korean\n"
 "Language: ko_KR\n"
@@ -56,8 +56,8 @@ msgstr "날짜 입력"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr "첨부파일"
 msgid "Select file to attach"
 msgstr "첨부할 파일을 선택하세요"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr ""
 msgid "File comment"
 msgstr ""
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr ""
 msgid "Invalid choice"
 msgstr ""
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr "이름"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr "이름"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr ""
 msgid "An error has been logged by the server."
 msgstr ""
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "유효한 숫자여야 합니다"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -661,7 +661,7 @@ msgstr "중국어 (간체)"
 msgid "Chinese (Traditional)"
 msgstr "중국어 (번체)"
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr "Background worker 확인 실패"
 
@@ -917,14 +917,14 @@ msgstr ""
 msgid "Build must be cancelled before it can be deleted"
 msgstr ""
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr ""
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -993,7 +993,7 @@ msgstr ""
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1023,11 @@ msgstr ""
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1168,13 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1206,7 @@ msgstr ""
 msgid "Priority of this build order"
 msgstr ""
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1244,7 @@ msgstr ""
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr "수량 값은 0보다 커야 합니다"
@@ -1258,10 +1259,10 @@ msgstr ""
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1426,7 @@ msgid "A list of build outputs must be provided"
 msgstr ""
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2032,1365 +2033,1369 @@ msgstr "{name.title()} 파일"
 msgid "Select {name} file to upload"
 msgstr "업로드할 {name} 파일을 선택하세요"
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr ""
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr ""
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr ""
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr ""
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr ""
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr ""
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr ""
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr ""
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr ""
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr ""
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr ""
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr ""
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr ""
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr "재시작 필요"
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr ""
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr ""
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr ""
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr ""
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr ""
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr ""
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr "회사명"
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr ""
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr ""
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr ""
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr "기본 통화"
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr ""
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr ""
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr "URL에서 다운로드"
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr ""
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr ""
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr ""
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr ""
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr ""
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr ""
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr ""
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr ""
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr ""
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr ""
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr ""
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr ""
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr ""
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr ""
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr ""
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr ""
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr "바코드 지원"
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr ""
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr ""
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr ""
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr ""
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr ""
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr ""
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr ""
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr ""
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr ""
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr ""
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr ""
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr ""
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr ""
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr ""
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr ""
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr ""
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr ""
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr ""
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr ""
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr ""
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr ""
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr ""
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr "구입 가능"
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr ""
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr "판매 가능"
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr ""
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr ""
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr ""
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr ""
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr ""
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr ""
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr ""
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr ""
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr ""
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr ""
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr ""
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr ""
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr ""
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr ""
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr ""
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr ""
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr ""
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr ""
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr ""
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr ""
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr ""
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr ""
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr ""
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr ""
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr ""
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr ""
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr ""
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr ""
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr ""
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr ""
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr ""
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr ""
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr ""
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr ""
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr ""
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr ""
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr ""
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr ""
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr "디버그 모드"
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr ""
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr "페이지 크기"
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr "PDF 보고서 기본 페이지 크기"
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr ""
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr ""
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr ""
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr ""
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr ""
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr ""
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr ""
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr ""
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr ""
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr ""
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr ""
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr ""
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr ""
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr ""
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr ""
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr ""
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr ""
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr ""
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr ""
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr ""
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr ""
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr ""
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr ""
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr ""
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr ""
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr ""
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr ""
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr ""
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr ""
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr ""
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr ""
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr ""
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr ""
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr ""
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr ""
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr ""
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr ""
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr ""
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr ""
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr ""
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr "SSO 활성화"
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr "로그인 페이지에서 SSO 활성화"
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr ""
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr ""
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr "이메일 필요"
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr ""
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr ""
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr ""
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr "두 번 보내기"
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr ""
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr ""
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr ""
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr ""
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr ""
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr ""
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr ""
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr ""
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr ""
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr ""
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr ""
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr ""
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr ""
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr ""
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr ""
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr ""
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr ""
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr ""
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr ""
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr ""
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr ""
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr ""
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr ""
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr ""
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr ""
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr ""
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr ""
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr ""
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr ""
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr ""
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr ""
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr ""
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr ""
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr ""
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr ""
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr ""
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr ""
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr ""
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr ""
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr ""
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr ""
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr ""
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr ""
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr ""
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr ""
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr ""
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr ""
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr ""
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr ""
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr ""
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr ""
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr ""
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr ""
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr ""
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr ""
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr ""
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr ""
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr ""
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr ""
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr ""
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr ""
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr ""
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr ""
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr ""
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr ""
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr ""
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr ""
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr ""
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr ""
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr ""
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr ""
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr ""
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr ""
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr ""
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr ""
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr ""
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr ""
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr ""
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr ""
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr ""
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr ""
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr ""
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr ""
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr ""
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr ""
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr ""
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr ""
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr ""
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr ""
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr ""
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr ""
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr ""
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr ""
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr ""
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr ""
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr ""
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr ""
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr ""
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr ""
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr ""
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr ""
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr ""
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3398,23 +3403,23 @@ msgstr ""
 msgid "Price"
 msgstr ""
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr ""
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr ""
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr ""
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3423,101 +3428,101 @@ msgstr ""
 msgid "Active"
 msgstr ""
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr ""
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr ""
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr ""
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr ""
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr ""
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr ""
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr ""
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr ""
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr ""
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr ""
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr ""
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr ""
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr ""
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr ""
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr ""
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr ""
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr ""
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr ""
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr ""
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr "작성자"
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr ""
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr ""
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr ""
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3527,31 +3532,31 @@ msgstr ""
 msgid "Image"
 msgstr "이미지"
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr ""
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3806,7 +3811,7 @@ msgstr ""
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3821,7 +3826,7 @@ msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3867,7 +3872,7 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3893,7 +3898,7 @@ msgstr ""
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3911,7 +3916,7 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3919,7 +3924,7 @@ msgstr ""
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -3936,7 +3941,7 @@ msgid "Supplier part description"
 msgstr ""
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4783,7 +4788,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr ""
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr ""
 
@@ -5478,38 +5483,42 @@ msgstr ""
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr ""
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr ""
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr ""
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr ""
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr ""
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr ""
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr ""
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr ""
@@ -5556,11 +5565,13 @@ msgstr ""
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5577,7 +5588,7 @@ msgstr ""
 msgid "Category Path"
 msgstr ""
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5600,16 +5611,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr ""
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr ""
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr ""
@@ -5660,7 +5673,7 @@ msgstr ""
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr ""
@@ -5694,7 +5707,7 @@ msgid "Default keywords for parts in this category"
 msgstr ""
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr ""
 
@@ -5741,7 +5754,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr ""
 
@@ -5765,10 +5778,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr ""
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5876,151 +5889,159 @@ msgstr ""
 msgid "Sell multiple"
 msgstr ""
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6028,567 +6049,596 @@ msgstr ""
 msgid "Date"
 msgstr ""
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr ""
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr ""
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr ""
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr ""
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr ""
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr ""
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr ""
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr ""
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr ""
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr ""
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr ""
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr ""
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr ""
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr "데이터"
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr ""
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr ""
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr ""
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr ""
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr ""
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr ""
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr ""
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr ""
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr ""
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr ""
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr ""
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr ""
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr ""
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr ""
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr ""
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr ""
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr ""
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr ""
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr ""
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr ""
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr ""
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr ""
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr "이미지 복사"
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr ""
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr ""
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr ""
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr ""
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr ""
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr ""
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr ""
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr ""
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr ""
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr ""
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr ""
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr ""
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7062,8 +7112,8 @@ msgstr ""
 msgid "Hide Part Details"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr ""
 
@@ -7078,8 +7128,8 @@ msgstr ""
 msgid "No supplier pricing available"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7147,7 +7197,20 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7155,65 +7218,73 @@ msgstr ""
 msgid "Last Updated"
 msgstr ""
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr ""
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr ""
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9325,7 +9396,7 @@ msgid "Project Codes"
 msgstr ""
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr ""
 
@@ -9366,14 +9437,6 @@ msgstr ""
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr ""
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9397,68 +9460,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10801,10 +10869,6 @@ msgstr ""
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po
index 80d9328f5c..287ada5cad 100644
--- a/InvenTree/locale/nl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/nl/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Dutch\n"
 "Language: nl_NL\n"
@@ -56,8 +56,8 @@ msgstr "Voer datum in"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr "Bijlage"
 msgid "Select file to attach"
 msgstr "Bestand als bijlage selecteren"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr "Opmerking"
 msgid "File comment"
 msgstr "Bestand opmerking"
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr "Dubbele namen kunnen niet bestaan onder hetzelfde bovenliggende object"
 msgid "Invalid choice"
 msgstr "Ongeldige keuze"
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr "Naam"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr "Naam"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr "Serverfout"
 msgid "An error has been logged by the server."
 msgstr "Er is een fout gelogd door de server."
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "Moet een geldig nummer zijn"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -661,7 +661,7 @@ msgstr "Chinees (vereenvoudigd)"
 msgid "Chinese (Traditional)"
 msgstr "Chinees (traditioneel)"
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr "Achtergrondwerker check is gefaald"
 
@@ -917,14 +917,14 @@ msgstr "Over InvenTree"
 msgid "Build must be cancelled before it can be deleted"
 msgstr "Productie moet geannuleerd worden voordat het kan worden verwijderd"
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr "Verbruiksartikelen"
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -993,7 +993,7 @@ msgstr "Productieorderreferentie"
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1023,11 @@ msgstr "Productieorder waar deze productie aan is toegewezen"
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1168,13 @@ msgid "User who issued this build order"
 msgstr "Gebruiker die de productieorder heeft gegeven"
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1206,7 @@ msgstr "Bouw prioriteit"
 msgid "Priority of this build order"
 msgstr "Prioriteit van deze bouwopdracht"
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1244,7 @@ msgstr "Productuitvoer komt niet overeen met de Productieorder"
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr "Hoeveelheid moet groter zijn dan nul"
@@ -1258,10 +1259,10 @@ msgstr "Bouw object"
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1426,7 @@ msgid "A list of build outputs must be provided"
 msgstr "Een lijst van productieuitvoeren moet worden verstrekt"
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2032,1365 +2033,1369 @@ msgstr "{name.title()} Bestand"
 msgid "Select {name} file to upload"
 msgstr "Kies {name} bestand om te uploaden"
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr "Bijgewerkt"
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr "Tijdstempel van laatste update"
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr "Unieke projectcode"
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr "Projectbeschrijving"
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig)"
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr "Instellingswaarde"
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr "Gekozen waarde is geen geldige optie"
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr "Waarde moet een booleaanse waarde zijn"
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr "Waarde moet een geheel getal zijn"
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr "Sleutelreeks moet uniek zijn"
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr "Geen groep"
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr "Een leeg domein is niet toegestaan."
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr "Ongeldige domeinnaam: {domain}"
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr "Geen plug-in gevonden"
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr "Opnieuw opstarten vereist"
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr "Een instelling is gewijzigd waarvoor een herstart van de server vereist is"
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr "ID Serverinstantie"
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr "Stringbeschrijving voor de server instantie"
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr "Gebruik de instantie naam"
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr "Gebruik de naam van de instantie in de titelbalk"
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr "Tonen `over` beperken"
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr "Toon de `over` modal alleen aan superusers"
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr "Bedrijfsnaam"
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr "Interne bedrijfsnaam"
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr "Basis-URL"
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr "Basis URL voor serverinstantie"
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr "Standaard Valuta"
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr "Selecteer basisvaluta voor de berekening van prijzen"
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr "dagen"
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr "Download van URL"
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr "Download van afbeeldingen en bestanden vanaf een externe URL toestaan"
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr "Download limiet"
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr "Maximale downloadgrootte voor externe afbeelding"
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr "User-agent gebruikt om te downloaden van URL"
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr "Sta toe om de user-agent te overschrijven die gebruikt wordt om afbeeldingen en bestanden van externe URL te downloaden (laat leeg voor de standaard)"
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr "Bevestiging vereist"
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr "Vereis expliciete bevestiging van de gebruiker voor bepaalde actie."
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr "Boomstructuur Diepte"
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr "Standaard diepte voor treeview. Diepere niveaus kunnen geladen worden wanneer ze nodig zijn."
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr "Interval voor update"
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr "Hoe vaak te controleren op updates (nul om uit te schakelen)"
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr "Automatische backup"
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr "Automatische back-up van database- en mediabestanden inschakelen"
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr "Automatische backup interval"
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr "Geef het aantal dagen op tussen geautomatiseerde backup"
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr "Interval Taak Verwijderen"
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr "Resultaten van achtergrondtaken worden verwijderd na het opgegeven aantal dagen"
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr "Error Log Verwijderings Interval"
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr "Resultaten van achtergrondtaken worden verwijderd na het opgegeven aantal dagen"
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr "Interval Verwijderen Notificatie"
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr "Meldingen van gebruikers worden verwijderd na het opgegeven aantal dagen"
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr "Streepjescodeondersteuning"
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr "Barcode Invoer Vertraging"
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr "Barcode invoerverwerking vertraging"
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr "Barcode Webcam Ondersteuning"
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr "Barcode via webcam scannen in browser toestaan"
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr "Herzieningen onderdeel"
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr "Revisieveld voor onderdeel inschakelen"
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr "IPN Regex"
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr "Regulier expressiepatroon voor het overeenkomende Onderdeel IPN"
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr "Duplicaat IPN toestaan"
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr "Toestaan dat meerdere onderdelen dezelfde IPN gebruiken"
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr "Bewerken IPN toestaan"
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr "Sta het wijzigen van de IPN toe tijdens het bewerken van een onderdeel"
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr "Kopieer Onderdeel Stuklijstgegevens"
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr "Kopieer standaard stuklijstgegevens bij het dupliceren van een onderdeel"
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr "Kopieer Onderdeel Parametergegevens"
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr "Parametergegevens standaard kopiëren bij het dupliceren van een onderdeel"
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr "Kopieer Onderdeel Testdata"
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr "Testdata standaard kopiëren bij het dupliceren van een onderdeel"
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr "Kopiëer Categorieparameter Sjablonen"
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr "Kopieer categorieparameter sjablonen bij het aanmaken van een onderdeel"
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr "Sjabloon"
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr "Onderdelen zijn standaard sjablonen"
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr "Samenstelling"
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr "Onderdelen kunnen standaard vanuit andere componenten worden samengesteld"
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr "Component"
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr "Onderdelen kunnen standaard worden gebruikt als subcomponenten"
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr "Koopbaar"
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr "Onderdelen kunnen standaard gekocht worden"
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr "Verkoopbaar"
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr "Onderdelen kunnen standaard verkocht worden"
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr "Volgbaar"
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr "Onderdelen kunnen standaard gevolgd worden"
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr "Virtueel"
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr "Onderdelen zijn standaard virtueel"
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr "Toon Import in Weergaven"
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr "Toon de importwizard in sommige onderdelenweergaven"
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr "Verwante onderdelen tonen"
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr "Verwante onderdelen voor een onderdeel tonen"
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr "Initiële voorraadgegevens"
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr "Aanmaken van eerste voorraad toestaan bij het toevoegen van een nieuw onderdeel"
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr "Initiële leveranciergegevens"
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr "Aanmaken van eerste leveranciersgegevens toestaan bij het toevoegen van een nieuw onderdeel"
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr "Onderdelennaam Weergaveopmaak"
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr "Opmaak om de onderdeelnaam weer te geven"
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr "Standaardicoon voor onderdeel catagorie"
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr "Standaardicoon voor onderdeel catagorie (leeg betekent geen pictogram)"
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr "Forceer Parameter Eenheden"
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr "Als er eenheden worden opgegeven, moeten parameterwaarden overeenkomen met de opgegeven eenheden"
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr "Minimaal aantal prijs decimalen"
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr "Minimaal aantal decimalen om weer te geven bij het weergeven van prijsgegevens"
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr "Maximum prijs decimalen"
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr "Maximum aantal decimalen om weer te geven bij het weergeven van prijsgegevens"
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr "Gebruik leveranciersprijzen"
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr "Prijsvoordelen leveranciers opnemen in de totale prijsberekening"
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr "Aankoopgeschiedenis overschrijven"
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr "Historische order prijzen overschrijven de prijzen van de leverancier"
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr "Gebruik voorraaditem prijzen"
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr "Gebruik prijzen van handmatig ingevoerde voorraadgegevens voor prijsberekeningen"
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr "Voorraad artikelprijs leeftijd"
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr "Voorraaditems ouder dan dit aantal dagen uitsluiten van prijsberekeningen"
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr "Gebruik variantprijzen"
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr "Variantenprijzen opnemen in de totale prijsberekening"
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr "Alleen actieve varianten"
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr "Gebruik alleen actieve variantonderdelen voor het berekenen van variantprijzen"
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr "Prijzen Herbouw interval"
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr "Aantal dagen voordat de prijzen voor onderdelen automatisch worden bijgewerkt"
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr "Interne Prijzen"
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr "Inschakelen van interne prijzen voor onderdelen"
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr "Interne prijs overschrijven"
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr "Indien beschikbaar, interne prijzen overschrijven berekeningen van prijsbereik"
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr "Printen van labels Inschakelen"
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr "Printen van labels via de webinterface inschakelen"
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr "Label Afbeelding DPI"
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr "DPI resolutie bij het genereren van afbeelginsbestanden voor label printer plugins"
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr "Activeer Rapportages"
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr "Activeer het genereren van rapporten"
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr "Foutopsporingsmodus"
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr "Rapporten genereren in debug modus (HTML uitvoer)"
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr "Paginagrootte"
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr "Standaard paginagrootte voor PDF rapporten"
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr "Activeer Testrapporten"
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr "Activeer het genereren van testrapporten"
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr "Testrapporten Toevoegen"
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr "Bij het afdrukken van een Testrapport, voeg een kopie van het Testrapport toe aan het bijbehorende Voorraadartikel"
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr "Globaal unieke serienummers"
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr "Serienummers voor voorraaditems moeten globaal uniek zijn"
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr "Serienummers automatisch invullen"
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr "Automatisch invullen van serienummer in formulieren"
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr "Verwijder uitgeputte voorraad"
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr "Bepaalt standaard gedrag wanneer een voorraaditem is uitgeput"
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr "Batchcode Sjabloon"
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr "Sjabloon voor het genereren van standaard batchcodes voor voorraadartikelen"
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr "Verlopen Voorraad"
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr "Verlopen voorraad functionaliteit inschakelen"
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr "Verkoop Verlopen Voorraad"
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr "Verkoop verlopen voorraad toestaan"
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr "Voorraad Vervaltijd"
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr "Aantal dagen voordat voorraadartikelen als verouderd worden beschouwd voor ze verlopen"
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr "Produceer Verlopen Voorraad"
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr "Sta productie met verlopen voorraad toe"
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr "Voorraad Eigenaar Toezicht"
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr "Eigenaarstoezicht over voorraadlocaties en items inschakelen"
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr "Voorraadlocatie standaard icoon"
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr "Standaard locatie pictogram (leeg betekent geen icoon)"
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr "Geïnstalleerde voorraad items weergeven"
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr "Geïnstalleerde voorraadartikelen in voorraadtabellen tonen"
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr "Productieorderreferentiepatroon"
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr "Vereist patroon voor het genereren van het Bouworderreferentieveld"
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr "Retourorders inschakelen"
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr "Retourorder functionaliteit inschakelen in de gebruikersinterface"
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr "Retourorder referentie patroon"
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr "Verplicht patroon voor het genereren van Retour Order referentie veld"
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr "Bewerk voltooide retourorders"
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr "Bewerken van retourorders toestaan nadat deze zijn voltooid"
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr "Verkooporderreferentiepatroon"
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr "Vereist patroon voor het genereren van het Verkooporderreferentieveld"
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr "Standaard Verzending Verkooporder"
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr "Aanmaken standaard verzending bij verkooporders inschakelen"
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr "Bewerk voltooide verkooporders"
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr "Bewerken van verkooporders toestaan nadat deze zijn verzonden of voltooid"
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr "Inkooporderreferentiepatroon"
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr "Vereist patroon voor het genereren van het Inkooporderreferentieveld"
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr "Bewerk voltooide verkooporders"
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr "Bewerken van inkooporders toestaan nadat deze zijn verzonden of voltooid"
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr "Wachtwoord vergeten functie inschakelen"
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr "Wachtwoord vergeten functie inschakelen op de inlogpagina's"
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr "Registratie inschakelen"
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr "Zelfregistratie voor gebruikers op de inlogpagina's inschakelen"
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr "SSO inschakelen"
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr "SSO inschakelen op de inlogpagina's"
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr "Schakel gebruikersregistratie met SSO in"
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr "Zelfregistratie voor gebruikers middels SSO op de inlogpagina's inschakelen"
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr "E-mailadres verplicht"
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr "Vereis gebruiker om e-mailadres te registreren bij aanmelding"
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr "SSO-gebruikers automatisch invullen"
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr "Gebruikersdetails van SSO-accountgegevens automatisch invullen"
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr "E-mail twee keer"
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr "Bij inschrijving gebruikers twee keer om hun e-mail vragen"
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr "Wachtwoord tweemaal"
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr "Laat gebruikers twee keer om hun wachtwoord vragen tijdens het aanmelden"
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr "Toegestane domeinen"
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr "Inschrijven beperken tot bepaalde domeinen (komma-gescheiden, beginnend met @)"
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr "Groep bij aanmelding"
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr "Groep waaraan nieuwe gebruikers worden toegewezen bij registratie"
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr "MFA afdwingen"
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr "Gebruikers moeten multifactor-beveiliging gebruiken."
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr "Controleer plugins bij het opstarten"
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr "Controleer of alle plug-ins zijn geïnstalleerd bij het opstarten - inschakelen in container-omgevingen"
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr "Activeer URL-integratie"
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr "Plugins toestaan om URL-routes toe te voegen"
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr "Activeer navigatie integratie"
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr "Plugins toestaan om te integreren in navigatie"
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr "Activeer app integratie"
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr "Activeer plug-ins om apps toe te voegen"
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr "Activeer planning integratie"
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr "Activeer plugin om periodiek taken uit te voeren"
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr "Activeer evenement integratie"
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr "Activeer plugin om op interne evenementen te reageren"
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr "Activeer project codes"
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr "Activeer project codes voor het bijhouden van projecten"
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr "Voorraadcontrole functionaliteit"
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr "Schakel voorraadfunctionaliteit in voor het opnemen van voorraadniveaus en het berekenen van voorraadwaarde"
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr "Externe locaties uitsluiten"
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr "Voorraadartikelen op externe locaties uitsluiten van voorraadberekeningen"
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr "Automatische Voorraadcontrole Periode"
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr "Aantal dagen tussen automatische voorraadopname (ingesteld op nul om uit te schakelen)"
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr "Rapport Verwijdering Interval"
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr "Voorraadrapportage zal worden verwijderd na het opgegeven aantal dagen"
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig"
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr "Inactieve Onderdelen Verbergen"
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr "Verberg inactieve delen bij items op de homepage"
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr "Toon geabonneerde onderdelen"
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr "Toon geabonneerde onderdelen op de homepage"
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr "Toon geabonneerde categorieën"
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr "Toon geabonneerde onderdeel categorieën op de startpagina"
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr "Toon laatste onderdelen"
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr "Toon laatste onderdelen op de startpagina"
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr "Toon niet-gevalideerde BOM's"
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr "Laat BOMs zien die wachten op validatie op de startpagina"
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr "Toon recente voorraadwijzigingen"
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr "Toon recent aangepaste voorraadartikelen op de startpagina"
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr "Toon lage voorraad"
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr "Toon lage voorraad van artikelen op de startpagina"
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr "Toon lege voorraad"
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr "Toon lege voorraad van artikelen op de startpagina"
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr "Toon benodigde voorraad"
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr "Toon benodigde voorraad van artikelen voor productie op de startpagina"
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr "Toon verlopen voorraad"
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr "Toon verlopen voorraad van artikelen op de startpagina"
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr "Toon verouderde voorraad"
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr "Toon verouderde voorraad van artikelen op de startpagina"
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr "Toon openstaande producties"
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr "Toon openstaande producties op de startpagina"
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr "Toon achterstallige productie"
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr "Toon achterstallige producties op de startpagina"
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr "Toon uitstaande PO's"
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr "Toon uitstaande PO's op de startpagina"
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr "Toon achterstallige PO's"
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr "Toon achterstallige PO's op de startpagina"
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr "Toon uitstaande SO's"
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr "Toon uitstaande SO's op de startpagina"
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr "Toon achterstallige SO's"
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr "Toon achterstallige SO's op de startpagina"
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr "Toon in behandeling SO verzendingen"
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr "Toon in behandeling zijnde SO verzendingen op de startpagina"
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr "Nieuws tonen"
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr "Nieuws op de startpagina weergeven"
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr "Inline labelweergave"
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr "PDF-labels in browser weergeven, in plaats van als bestand te downloaden"
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr "Standaard label printer"
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr "Instellen welke label printer standaard moet worden geselecteerd"
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr "Inline rapport weergeven"
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr "PDF-rapporten in de browser weergeven, in plaats van als bestand te downloaden"
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr "Zoek Onderdelen"
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr "Onderdelen weergeven in zoekscherm"
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr "Zoek leveranciersonderdelen"
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr "Leveranciersonderdelen weergeven in zoekscherm"
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr "Fabrikant onderdelen zoeken"
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr "Fabrikant onderdelen weergeven in zoekscherm"
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr "Inactieve Onderdelen Verbergen"
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr "Inactieve verkooporders weglaten in het zoekvenster"
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr "Zoek categorieën"
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr "Toon onderdeelcategorieën in zoekvenster"
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr "Zoek in Voorraad"
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr "Toon voorraad items in zoekvenster"
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr "Verberg niet beschikbare voorraad items"
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr "Voorraadartikelen die niet beschikbaar zijn niet in het zoekvenster weergeven"
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr "Locaties doorzoeken"
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr "Toon voorraadlocaties in zoekvenster"
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr "Zoek bedrijven"
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr "Toon bedrijven in zoekvenster"
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr "Zoek Bouworders"
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr "Toon bouworders in zoekvenster"
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr "Inkooporders Zoeken"
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr "Toon inkooporders in het zoekvenster"
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr "Inactieve Inkooporders Weglaten"
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr "Inactieve inkooporders weglaten in het zoekvenster"
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr "Verkooporders zoeken"
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr "Toon verkooporders in het zoekvenster"
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr "Inactieve Verkooporders Weglaten"
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr "Inactieve verkooporders weglaten in het zoekvenster"
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr "Zoek retourorders"
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr "Toon bouworders in zoekvenster"
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr "Inactieve retourbestellingen weglaten"
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr "Inactieve retourorders uitsluiten in zoekvenster"
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr "Zoekvoorbeeld resultaten"
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr "Aantal resultaten om weer te geven in elk gedeelte van het zoekvenster"
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr "Regex zoeken"
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr "Schakel reguliere expressies in zoekopdrachten in"
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr "Hele woorden zoeken"
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr "Zoekopdrachten geven resultaat voor hele woord overeenkomsten"
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr "Toon hoeveelheid in formulieren"
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr "Hoeveelheid beschikbare onderdelen in sommige formulieren weergeven"
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr "Escape-toets sluit formulieren"
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr "Gebruik de Escape-toets om standaard formulieren te sluiten"
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr "Vaste navigatiebalk"
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr "De navigatiebalk positie is gefixeerd aan de bovenkant van het scherm"
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr "Datum formaat"
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr "Voorkeursindeling voor weergave van datums"
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr "Onderdeel planning"
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr "Toon informatie voor het plannen van onderdelen"
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr "Voorraadcontrole onderdeel"
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr "Toon voorraadinformatie van onderdeel (als voorraadcontrole functionaliteit is ingeschakeld)"
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr "Tabel tekenreekslengte"
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr "Limiet tekenreeksen voor het weergegeven in tabelweergaven"
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr "Standaard sjabloon product onderdeel"
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr "Het onderdeellabelsjabloon dat automatisch wordt geselecteerd"
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr "Standaard sjabloon voorraad onderdeel"
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr "Standaard label van voorraadlocatie"
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3398,23 +3403,23 @@ msgstr ""
 msgid "Price"
 msgstr "Prijs"
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr "Eindpunt"
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr "Eindpunt waarop deze webhook wordt ontvangen"
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr "Naam van deze webhook"
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3423,101 +3428,101 @@ msgstr "Naam van deze webhook"
 msgid "Active"
 msgstr "Actief"
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr "Is deze webhook actief"
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr "Token"
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr "Token voor toegang"
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr "Geheim"
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr "Gedeeld geheim voor HMAC"
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr "Bericht ID"
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr ""
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr "Host"
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr ""
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr "Koptekst"
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr "Koptekst van dit bericht"
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr "Berichtinhoud"
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr "Inhoud van dit bericht"
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr ""
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr "Aan gewerkt"
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr ""
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr ""
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr ""
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr ""
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr ""
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr ""
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr ""
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr ""
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3527,31 +3532,31 @@ msgstr ""
 msgid "Image"
 msgstr "Afbeelding"
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr ""
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3806,7 +3811,7 @@ msgstr "Onderdeel selecteren"
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3821,7 +3826,7 @@ msgid "Select manufacturer"
 msgstr "Fabrikant selecteren"
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3867,7 +3872,7 @@ msgid "Parameter value"
 msgstr "Parameterwaarde"
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3893,7 +3898,7 @@ msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderd
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3911,7 +3916,7 @@ msgid "Select supplier"
 msgstr "Leverancier selecteren"
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3919,7 +3924,7 @@ msgstr "Leverancier selecteren"
 msgid "SKU"
 msgstr "SKU"
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -3936,7 +3941,7 @@ msgid "Supplier part description"
 msgstr ""
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4783,7 +4788,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr "Alleen verkoopbare onderdelen kunnen aan een verkooporder worden toegewezen"
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr "Verkoopprijs"
 
@@ -5478,38 +5483,42 @@ msgstr "{part} stukprijs bijgewerkt naar {price}"
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr "{part} stukprijs bijgewerkt naar {price} en aantal naar {qty}"
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr "Onderdeel-id"
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr "Onderdeel naam"
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr "Onderdeel omschrijving"
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr ""
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr ""
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr ""
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr ""
@@ -5556,11 +5565,13 @@ msgstr ""
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5577,7 +5588,7 @@ msgstr ""
 msgid "Category Path"
 msgstr ""
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5600,16 +5611,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr ""
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr ""
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr ""
@@ -5660,7 +5673,7 @@ msgstr "Beschikbare Voorraad"
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr "Onderdeel Categorie"
@@ -5694,7 +5707,7 @@ msgid "Default keywords for parts in this category"
 msgstr ""
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr ""
 
@@ -5741,7 +5754,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr "Onderdeel naam"
 
@@ -5765,10 +5778,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr ""
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5876,151 +5889,159 @@ msgstr ""
 msgid "Sell multiple"
 msgstr ""
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr "Onderdeel voor voorraadcontrole"
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6028,567 +6049,596 @@ msgstr ""
 msgid "Date"
 msgstr "Datum"
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr ""
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr ""
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr "Aantal onderdelen"
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr ""
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr ""
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr ""
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr ""
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr ""
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr ""
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr ""
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr "De template van de parameter moet uniek zijn"
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr "Parameternaam"
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr ""
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr "Parameter Template"
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr "Parameterwaarde"
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr ""
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr "Standaard Parameter Waarde"
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr ""
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr ""
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr ""
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr ""
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr "Stuklijstartikel"
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr ""
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr ""
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr ""
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr ""
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr ""
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr ""
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr ""
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr ""
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr ""
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr ""
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr ""
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr ""
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr ""
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr "Geen onderdelen geselecteerd"
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr "Afbeelding kopiëren"
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr "Afbeelding kopiëren van het oorspronkelijke onderdeel"
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr ""
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr "Parameters kopiëren"
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr "Parameter data kopiëren van het originele onderdeel"
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr ""
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr ""
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr ""
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr ""
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr ""
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr ""
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr ""
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr ""
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr ""
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr "Ongeldige hoeveelheid"
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7062,8 +7112,8 @@ msgstr "Geen overeenkomende afbeeldingen gevonden"
 msgid "Hide Part Details"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr ""
 
@@ -7078,8 +7128,8 @@ msgstr ""
 msgid "No supplier pricing available"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7147,7 +7197,20 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7155,65 +7218,73 @@ msgstr ""
 msgid "Last Updated"
 msgstr ""
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr ""
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr ""
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9325,7 +9396,7 @@ msgid "Project Codes"
 msgstr ""
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr ""
 
@@ -9366,14 +9437,6 @@ msgstr ""
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr ""
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9397,68 +9460,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10801,10 +10869,6 @@ msgstr ""
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po
index ea7ff44755..437d5083a3 100644
--- a/InvenTree/locale/no/LC_MESSAGES/django.po
+++ b/InvenTree/locale/no/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Norwegian\n"
 "Language: no_NO\n"
@@ -56,8 +56,8 @@ msgstr "Oppgi dato"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr "Vedlegg"
 msgid "Select file to attach"
 msgstr "Velg fil å legge ved"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr "Kommentar"
 msgid "File comment"
 msgstr "Kommentar til fil"
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr "Duplikatnavn kan ikke eksistere under samme overordnede"
 msgid "Invalid choice"
 msgstr "Ugyldig valg"
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr "Navn"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr "Navn"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr "Serverfeil"
 msgid "An error has been logged by the server."
 msgstr "En feil har blitt logget av serveren."
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "Må være et gyldig tall"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -661,7 +661,7 @@ msgstr ""
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr "Sjekk av bakgrunnsarbeider mislyktes"
 
@@ -917,14 +917,14 @@ msgstr "Om InvenTree"
 msgid "Build must be cancelled before it can be deleted"
 msgstr "Bygningen må avbrytes før den kan slettes"
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr "Forbruksvare"
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -993,7 +993,7 @@ msgstr "Bygg ordrereferanse"
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1023,11 @@ msgstr "Build order som denne build er tildelt til"
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1168,13 @@ msgid "User who issued this build order"
 msgstr "Brukeren som utstede denne prosjekt order"
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1206,7 @@ msgstr "Produksjonsprioritet"
 msgid "Priority of this build order"
 msgstr "Produksjonsordrens prioritet"
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1244,7 @@ msgstr "Prosjekt utdata samsvarer ikke Prosjekt Order"
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr "Mengden må være større enn null"
@@ -1258,10 +1259,10 @@ msgstr "Bygg objekt"
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1426,7 @@ msgid "A list of build outputs must be provided"
 msgstr "En liste over produksjonsartikler må oppgis"
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2032,1365 +2033,1369 @@ msgstr "{name.title()} Fil"
 msgid "Select {name} file to upload"
 msgstr "Velg {name} fil som skal lastes opp"
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr "Oppdatert"
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr "Tidsstempel for forrige oppdatering"
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr "Unik prosjektkode"
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr "Prosjektbeskrivelse"
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr "Innstillingsnøkkel (må være unik - ufølsom for store of små bokstaver)"
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr "Innstillings verdi"
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr "Valgt verdi er ikke et gyldig alternativ"
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr "Verdien må være en boolsk verdi"
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr "Verdien må være et heltall"
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr "Nøkkelstreng må være unik"
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr "Ingen gruppe"
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr "Et tomt domene er ikke tillatt."
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr "Ugyldig domenenavn: {domain}"
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr "Omstart kreves"
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr "En innstilling har blitt endret som krever en omstart av serveren"
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr "Navn på serverinstans"
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr "Strengbeskrivelse for serverinstansen"
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr "Bruk instansnavn"
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr "Bruk instansnavnet på tittellinjen"
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr "Begrens visning av 'om'"
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr "Vis `about`-modal kun til superbrukere"
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr "Firmanavn"
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr "Internt firmanavn"
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr "Base-URL"
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr "Base-URL for serverinstans"
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr "Standardvaluta"
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr "Velg grunnvalutaen for prisberegninger"
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr "dager"
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr "Last ned fra URL"
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr "Tillat nedlastning av eksterne bilder og filer fra ekstern URL"
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr "Nedlastingsgrense"
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr "Maksimal tillatt nedlastingsstørrelse for eksternt bilde"
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr "User-Agent brukt for å laste ned fra URL"
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr "Tillat overstyring av User-Agent brukt for å laste ned bilder og filer fra eksterne URLer (lå stå blank for standard)"
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr "Krev bekreftelse"
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr "Krev eksplisitt brukerbekreftelse for visse handlinger."
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr "Tredybde"
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr "Standard tredybde for trevisning. Dypere nivåer kan lastes inn ved behov."
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr "Intervall for oppdateringssjekk"
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr "Tidsintervall for å se etter oppdateringer(sett til null for å skru av)"
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr "Automatisk sikkerhetskopiering"
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr "Aktiver automatisk sikkerhetskopiering av database og mediafiler"
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr "Automatisk sikkerhetskopieringsintervall"
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr "Angi antall dager mellom automatiske sikkerhetskopieringshendelser"
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr "Slettingsintervall for oppgaver"
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr "Bakgrunnsoppgaveresultater vil bli slettet etter antall angitte dager"
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr "Slettingsintervall for feillogg"
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr "Feilloggene vil bli slettet etter et angitt antall dager"
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr "Slettingsintervall for varsler"
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr "Brukervarsler slettes etter angitt antall dager"
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr "Strekkodestøtte"
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr "Innlesingsforsinkelse for strekkode"
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr "Tidsforsinkelse for behandling av strekkode"
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr "Støtte for strekkodewebkamera"
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr "Tillat strekkodelesning via webkamera i nettleseren"
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr "Delrevisjoner"
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr "Aktiver revisjonsfeltet for Del"
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr "IPN regex"
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr "Regulært uttrykksmønster for matching av internt delnummer"
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr "Tilat duplikat av internt delnummer"
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr "Tillat flere deler å dele samme interne delnummer"
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr "Tillat redigering av internt delnummer"
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr "Tillat endring av IPN-verdien mens du redigerer en del"
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr "Kopier BOM-data fra del"
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr "Kopier BOM-data som standard når du dupliserer en del"
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr "Kopier parameterdata fra del"
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr "Kopier parameterdata som standard ved duplisering av en del"
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr "Kopier testdata fra del"
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr "Kopier testdata som standard ved duplisering av en del"
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr "Kopier designmaler for kategoriparametere"
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr "Kopier parametermaler for kategori ved oppretting av en del"
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr "Mal"
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr "Deler er maler som standard"
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr "Sammenstilling"
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr "Deler kan settes sammen fra andre komponenter som standard"
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr "Komponent"
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr "Deler kan bli brukt som underkomponenter som standard"
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr "Kjøpbar"
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr "Deler er kjøpbare som standard"
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr "Salgbar"
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr "Deler er salgbare som standard"
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr "Sporbar"
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr "Deler er sporbare som standard"
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr "Virtuelle"
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr "Deler er virtuelle som standard"
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr "Vis import i visninger"
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr "Vis importveiviseren i noen deler visninger"
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr "Vis relaterte deler"
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr "Vis relaterte deler i en del"
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr "Innledende lagerbeholdningsdata"
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr "Tillat oppretting av innledende lagerbeholdning når en ny del opprettes"
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr "Innledende leverandørdata"
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr "Tillat oppretting av innledende leverandørdata når en ny del opprettes"
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr "Visningsformat for delnavn"
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr "Format for å vise delnavnet"
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr "Standardikon for delkategorier"
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr "Standardikon for delkategorier (tomt betyr ingen ikon)"
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr "Minimum antall desimalplasser for priser"
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr "Minimum antall desimalplasser som skal vises når man gjengir prisdata"
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr "Maksimalt antall desimalplasser for priser"
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr "Maksimalt antall desimalplasser som skal vises når man gjengir prisdata"
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr "Bruk leverandørpriser"
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr "Inkluder leverandørprisbrudd i beregninger av totalpriser"
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr "Innkjøpshistorikkoverstyring"
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr "Historiske innkjøpspriser overstyrer leverandørprisnivåer"
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr "Bruk lagervarepriser"
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr "Bruk priser fra manuelt innlagte lagervarer for prisberegninger"
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr "Lagervare prisalder"
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr "Unnta lagervarer som er eldre enn dette antall dager fra prisberegninger"
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr "Bruk Variantpriser"
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr "Inkluder variantpriser i beregninger av totale priser"
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr "Kun aktive varianter"
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr "Bruk kun aktive variantdeler til beregning av variantprising"
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr "Intervall for rekalkulering av priser"
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr "Antall dager før delpriser blir automatisk oppdatert"
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr "Interne Priser"
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr "Aktiver interne priser for deler"
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr "Intern prisoverstyring"
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr "Hvis tilgjengelig, overstyrer interne priser kalkulering av prisområde"
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr "Aktiver etikettutskrift"
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr "Aktiver utskrift av etiketter fra nettleseren"
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr "Etikettbilde-DPI"
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr "DPI-oppløsning når når det genereres bildefiler for sending til utvidelser for etikettutskrift"
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr "Aktiver Rapporter"
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr "Aktiver generering av rapporter"
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr "Feilsøkingsmodus"
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr "Generer rapporter i feilsøkingsmodus (HTML-output)"
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr "Sidestørrelse"
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr "Standard sidestørrelse for PDF-rapporter"
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr "Aktiver Testrapporter"
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr "Aktiver generering av testrapporter"
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr "Legg ved testrapporter"
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr "Når det skrives ut en Testrapport, legg ved en kopi av Testrapporten på den assosierte Lagervaren"
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr "Globalt Unike Serienummer"
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr "Serienummer for lagervarer må være globalt unike"
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr "Automatisk tildeling av Serienummer"
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr "Aumatisk fyll ut serienummer i skjemaer"
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr "Slett oppbrukt lagerbeholdning"
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr "Bestemmer standard oppførsel når en lagervare er oppbrukt"
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr "Batchkodemal"
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr "Mal for generering av standard batchkoder for lagervarer"
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr "Lagerbeholdning utløper"
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr "Aktiver funksjonalitet for utløp av lagerbeholdning"
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr "Selg utløpt lagerbeholdning"
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr "Tillat salg av utgått lagerbeholdning"
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr "Foreldet lagerbeholdning tidsintervall"
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr "Antall dager før lagervarer er ansett som foreldet før utløp"
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr "Produsér Utløpt Lagerbeholdning"
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr "Tillat produksjon med utløpt lagerbeholdning"
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr "Kontroll over eierskap av lagerbeholdning"
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr "Aktiver eierskap over lagerplasseringer og -varer"
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr "Lagerplassering standard ikon"
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr "Lagerplassering standard ikon (tomt betyr ingen ikon)"
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr "Vis installerte lagervarer"
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr "Vis installerte lagervarer i lagertabeller"
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr "Produksjonsordre-referansemønster"
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr "Nødvendig mønster for å generere Produksjonsordre-referansefeltet"
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr "Aktiver returordrer"
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr "Aktiver returordrefunksjonalitet i brukergrensesnittet"
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr "Returordre-referansemønster"
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr "Påkrevd mønster for å generere returordrereferansefelt"
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr "Rediger fullførte returordrer"
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr "Tillat redigering av returordrer etter de er fullført"
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr "Salgsordre-referansemønster"
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr "Påkrevd mønster for å generere salgsordrereferansefelt"
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr "Salgsordre standard fraktmetode"
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr "Aktiver opprettelse av standard forsendelse med salgsordrer"
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr "Rediger fullførte salgsordrer"
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr "Tillat redigering av salgsordrer etter de har blitt sendt eller fullført"
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr "Referansemønster for innkjøpsordre"
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr "Obligatorisk mønster for generering av referansefelt for innkjøpsordre"
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr "Rediger fullførte innkjøpsordre"
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr "Tillat redigering av innkjøpsordre etter at de har blitt sendt eller fullført"
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr "Aktiver passord glemt"
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr "Ativer funskjon for glemt passord på innloggingssidene"
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr "Aktiver registrering"
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr "Aktiver egenregistrerting for brukerer på påloggingssidene"
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr "Aktiver SSO"
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr "Aktiver SSO på innloggingssidene"
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr "Aktiver SSO-registrering"
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr "Aktiver selvregistrering via SSO for brukere på innloggingssiden"
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr "E-postadresse kreves"
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr "Krevt at brukere angir e-post ved registrering"
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr "Auto-utfyll SSO-brukere"
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr "Fyll automatisk ut brukeropplysninger fra SSO-kontodata"
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr "E-post to ganger"
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr "Spør brukeren om e-post to ganger ved registrering"
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr "Passord to ganger"
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr "Spør brukeren om passord to ganger ved registrering"
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr "Tillatte domener"
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr "Begrens registrering til bestemte domener (kommaseparert, begynner med @)"
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr "Gruppe ved registrering"
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr "Gruppe nye brukere blir tilknyttet ved registrering"
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr "Krev MFA"
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr "Brukere må bruke flerfaktorsikkerhet."
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr "Sjekk utvidelser ved oppstart"
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr "Sjekk at alle utvidelser er installert ved oppstart - aktiver i containermiljøer"
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr "Aktiver URL-integrasjon"
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr "Tillat utvidelser å legge til URL-ruter"
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr "Aktiver navigasjonsintegrasjon"
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr "Tillat utvidelser å integrere mot navigasjon"
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr "Aktiver app-integrasjon"
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr "Tillat utvidelser å legge til apper"
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr "Aktiver tidsplanintegrasjon"
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr "Tillat utvidelser å kjøre planlagte oppgaver"
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr "Aktiver hendelsesintegrasjon"
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr "Tillat utvidelser å reagere på interne hendelser"
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr "Aktiver prosjektkoder"
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr "Aktiver prosjektkoder for å spore prosjekter"
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr "Varetellingsfunksjonalitet"
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr "Aktiver varetellingsfunksjonalitet for å registrere lagernivåer og regne ut lagerverdi"
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr "Automatisk varetellingsperiode"
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr "Antall dager mellom automatisk varetellingsregistrering (sett til null for å deaktivere)"
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr "Rapportslettingsintervall"
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr "Varetellingsrapporter vil slettes etter angitt antall dager"
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr "Innstillingsnøkkel (må være unik - ufølsom for store og små bokstaver"
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr "Skjul inaktive elementer"
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr "Skjul inaktive deler i resultater som vises på hjemmesiden"
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr "Vis abonnerte deler"
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr "Vis abonnerte deler på startsiden"
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr "Vis abonnerte kategorier"
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr "Vis abonnerte delkatekorier på startsiden"
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr "Vis nyeste deler"
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr "Vis nyeste deler på startsiden"
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr "Vis uvaliderte stykklister"
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr "Vis stykklister som venter på validering på startsiden"
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr "Vis nylige lagerendringer"
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr "Vis nylig endrede lagervarer på startsiden"
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr "Vis lav lagerbeholdning"
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr "Vis lave lagervarer på startsiden"
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr "Vis tomme lagervarer"
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr "Vis tom lagerbeholdning på startsiden"
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr "Vis nødvendig lagerbeholdning"
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr "Vis lagervarer som trengs for produksjon på startsiden"
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr "Vis utløpt lagerbeholdning"
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr "Vis utløpte lagervarer på startsiden"
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr "Vis foreldet lagerbeholdning"
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr "Vis foreldet lagerbeholdning på startsiden"
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr "Vis ventende produksjoner"
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr "Vi ventende produksjoner på startsiden"
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr "Vis forfalte produksjoner"
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr "Vis forfalte produksjoner på startsiden"
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr "Vis utestående Innkjøpsordrer"
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr "Vis utestående Innkjøpsordrer på startsiden"
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr "Vis forfalte Innkjøpsordrer"
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr "Vis forfalte Innkjøpsordrer på startsiden"
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr "Vis utestående Salgsordrer"
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr "Vis utestående Salgsordrer på startsiden"
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr "Vis forfalte SOer"
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr "Vis forfalte SOer på startsiden"
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr "Vis ventende SO-forsendelser"
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr "Vis ventende SO-forsendelser på startsiden"
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr "Vis Nyheter"
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr "Vis nyheter på startsiden"
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr "Innebygd etikettvisning"
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr "Vis PDF-etiketter i nettleseren fremfor å lastes ned som en fil"
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr "Standard etikettskriver"
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr "Konfigurer hvilken etikettskriver som skal være valgt som standard"
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr "Innebygd rapportvisning"
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr "Vis PDF-rapporter i nettleseren fremfor å lastes ned som en fil"
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr "Søk i Deler"
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr "Vis deler i forhåndsvsningsvinduet for søk"
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr "Søk i Leverandørdeler"
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr "Vis leverandørdeler i forhåndsvisningsvinduet for søk"
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr "Søk i Produsentdeler"
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr "Vis produsentdeler i forhåndsvisningsvinduet for søk"
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr "Skjul Inaktive Deler"
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr "Ekskluder inaktive deler fra forhåndsvisningsvinduet for søk"
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr "Søk i kategorier"
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr "Vis delkategorier i forhåndsvisningsvinduet for søk"
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr "Søk i lagerbeholdning"
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr "Vis lagervarer i forhåndsvisningsvinduet for søk"
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr "Skjul utilgjengelige Lagervarer"
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr "Ekskluder lagervarer som ikke er tilgjengelige fra forhåndsvisningsvinduet for søk"
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr "Søk i Plasseringer"
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr "Vis lagerplasseringer i forhåndsvisningsvinduet for søk"
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr "Søk i Firma"
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr "Vis firma i forhåndsvsningsvinduet for søk"
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr "Søk i Produksjonsordrer"
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr "Vis produksjonsordrer i forhåndsvisningsvinduet for søk"
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr "Søk i Innkjøpsordrer"
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr "Vis innkjøpsordrer i forhåndsvisningsvinduet for søk"
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr "Ekskluder inaktive Innkjøpsordrer"
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr "Ekskluder inaktive innkjøpsordrer fra forhåndsvisningsvinduet for søk"
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr "Søk i Salgsordrer"
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr "Vis salgsordrer i forhåndsvisningsvinduet for søk"
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr "Ekskluder Inaktive Salgsordrer"
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr "Ekskluder inaktive salgsordrer fra forhåndsvisningsvinduet for søk"
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr "Søk i Returordrer"
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr "Vis returordrer i forhåndsvisningsvinduet for søk"
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr "Ekskluder Inaktive Returordrer"
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr "Ekskluder inaktive returordrer fra forhåndsvisningsvinduet for søk"
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr "Forhåndsvisning av søkeresultater"
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr "Antall resultater å vise i hver seksjon av søkeresultatsforhåndsvisningen"
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr "Regex-søk"
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr "Aktiver regulære uttrykk i søkeord"
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr "Helordsøk"
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr "Søk returnerer resultater for treff med hele ord"
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr "Vis antall i skjemaer"
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr "Vis antall tilgjengelige deler i noen skjemaer"
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr "Escape-knappen lukker skjemaer"
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr "Bruk Escape-knappen for å lukke modal-skjemaer"
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr "Fast navigasjonsbar"
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr "Navigasjonsbarens posisjon er fast på toppen av skjermen"
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr "Datoformat"
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr "Foretrukket format for å vise datoer"
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr "Delplanlegging"
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr "Vis delplanleggingsinformasjon"
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr "Lagertelling for Del"
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr "Vis lagertellingsinformasjon for del (om lagertellingsfunksjonalitet er aktivert)"
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr "Tabellstrenglengde"
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr "Maksimal lengdegrense for strenger vist i tabeller"
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr "Standard del etikett mal"
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr "Del etikett malen skal velges automatsik"
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr "Standard lagervarer mal"
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr "Lagervarer etikett mal skal valges automatisk"
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr "Standard lagervarer lokasjon etikett mal"
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr "Lagervarer lokasjon etikett malen skal valges automatisk"
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr "Antall for prisbrudd"
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3398,23 +3403,23 @@ msgstr "Antall for prisbrudd"
 msgid "Price"
 msgstr "Pris"
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr "Enhetspris på spesifisert antall"
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr "Endepunkt"
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr "Endepunktet hvor denne webhooken er mottatt"
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr "Navn for webhooken"
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3423,101 +3428,101 @@ msgstr "Navn for webhooken"
 msgid "Active"
 msgstr "Aktiv"
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr "Er webhooken aktiv"
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr "Sjetong"
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr "Nøkkel for tilgang"
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr "Hemmelig"
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr "Delt hemmlighet for HMAC"
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr "Melding ID"
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr "Unik Id for denne meldingen"
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr "Vert"
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr "Verten denne meldingen ble mottatt fra"
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr "Tittel"
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr "Overskrift for denne meldingen"
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr "Brødtekst"
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr "Innholdet i meldingen"
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr "Endepunktet meldingen ble mottatt fra"
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr "Arbeidet med"
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr "Var arbeidet med denne meldingen ferdig?"
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr "Id"
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr "Tittel"
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr "Publisert"
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr "Forfatter"
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr "Sammendrag"
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr "Les"
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr "Er dette nyhetselementet lest?"
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3527,31 +3532,31 @@ msgstr "Er dette nyhetselementet lest?"
 msgid "Image"
 msgstr "Bilde"
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr "Bildefil"
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr "Symbol"
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr "Definisjon"
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr "Enhets definisjon"
 
@@ -3806,7 +3811,7 @@ msgstr "Velg del"
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3821,7 +3826,7 @@ msgid "Select manufacturer"
 msgstr "Velg produsent"
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3867,7 +3872,7 @@ msgid "Parameter value"
 msgstr "Parameterverdi"
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3893,7 +3898,7 @@ msgstr "Den sammenkoblede produsentdelen må referere til samme basisdel"
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3911,7 +3916,7 @@ msgid "Select supplier"
 msgstr "Velg leverandør"
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3919,7 +3924,7 @@ msgstr "Velg leverandør"
 msgid "SKU"
 msgstr "SKU-kode"
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr "Leverandørens lagerbeholdningsenhet"
 
@@ -3936,7 +3941,7 @@ msgid "Supplier part description"
 msgstr "Leverandørens delbeskrivelse"
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4783,7 +4788,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr "Kun salgbare deler kan tildeles en salgsordre"
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr "Salgspris"
 
@@ -5478,38 +5483,42 @@ msgstr "Oppdaterte {part} enhetspris to {price}"
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr "Oppdaterte {part} enhetspris til {price} og antall til {qty}"
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr "Del-ID"
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr "Delnavn"
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr "Delbeskrivelse"
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr "IPN"
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr "Revisjon"
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr "Nøkkelord"
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr "Kategori-ID"
@@ -5556,11 +5565,13 @@ msgstr "Brukt i"
 msgid "Building"
 msgstr "Produseres"
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr "Minimum kostnad"
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr "Maksimum kostnad"
 
@@ -5577,7 +5588,7 @@ msgstr "Overordnet navn"
 msgid "Category Path"
 msgstr "Sti til kategori"
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5600,16 +5611,18 @@ msgstr "BOM artikkel-ID"
 msgid "Parent IPN"
 msgstr "Overodnet IPN"
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr "Del IPN"
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr "Minstepris"
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr "Makspris"
@@ -5660,7 +5673,7 @@ msgstr "Tilgjengelig lagerbeholdning"
 msgid "Input quantity for price calculation"
 msgstr "Sett inn antall for prisberegning"
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr "Delkategori"
@@ -5694,7 +5707,7 @@ msgid "Default keywords for parts in this category"
 msgstr "Standard nøkkelord for deler i denne kategorien"
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr "Ikon"
 
@@ -5741,7 +5754,7 @@ msgstr "Del med dette Navnet, internt delnummer og Revisjon eksisterer allerede.
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr "Deler kan ikke tilordnes strukturelle delkategorier!"
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr "Delnavn"
 
@@ -5765,10 +5778,10 @@ msgstr "Delbeskrivelse (valgfritt)"
 msgid "Part keywords to improve visibility in search results"
 msgstr "Del-nøkkelord for å øke synligheten i søkeresultater"
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5876,151 +5889,159 @@ msgstr "Siste lagertelling"
 msgid "Sell multiple"
 msgstr "Selg flere"
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr "Valuta som brukes til å bufre prisberegninger"
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr "Minimal BOM-kostnad"
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr "Minste kostnad for komponentdeler"
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr "Maksimal BOM-kostnad"
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr "Maksimal kostnad for komponentdeler"
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr "Minimal innkjøpskostnad"
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr "Minimal historisk innkjøpskostnad"
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr "Maksimal innkjøpskostnad"
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr "Maksimal historisk innkjøpskostnad"
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr "Minimal intern pris"
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr "Minimal kostnad basert på interne prisbrudd"
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr "Maksimal intern pris"
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr "Maksimal kostnad basert på interne prisbrudd"
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr "Minimal leverandørpris"
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr "Minimumspris for del fra eksterne leverandører"
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr "Maksimal leverandørpris"
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr "Maksimalpris for del fra eksterne leverandører"
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr "Minimal Variantkostnad"
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr "Beregnet minimal kostnad for variantdeler"
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr "Maksimal Variantkostnad"
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr "Beregnet maksimal kostnad for variantdeler"
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr "Beregnet samlet minimal kostnad"
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr "Beregnet samlet maksimal kostnad"
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr "Minimal salgspris"
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr "Minimal salgspris basert på prisbrudd"
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr "Maksimal Salgspris"
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr "Maksimal salgspris basert på prisbrudd"
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr "Minimal Salgskostnad"
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr "Minimal historisk salgspris"
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr "Maksimal Salgskostnad"
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr "Maksimal historisk salgspris"
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr "Del for varetelling"
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr "Antall"
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr "Antall individuelle lagerenheter på tidspunkt for varetelling"
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr "Total tilgjengelig lagerbeholdning på tidspunkt for varetelling"
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6028,567 +6049,596 @@ msgstr "Total tilgjengelig lagerbeholdning på tidspunkt for varetelling"
 msgid "Date"
 msgstr "Dato"
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr "Dato for utført lagertelling"
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr "Flere notater"
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr "Bruker som utførte denne lagertellingen"
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr "Minimal lagerkostnad"
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr "Estimert minimal kostnad for lagerbeholdning"
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr "Maksimal lagerkostnad"
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr "Estimert maksimal kostnad for lagerbeholdning"
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr "Rapport"
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr "Lagertellingsrapportfil (generert internt)"
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr "Antall deler"
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr "Antall deler dekket av varetellingen"
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr "Bruker som forespurte varetellingsrapporten"
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr "Testmaler kan bare bli opprettet for sporbare deler"
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr "Test med dette navnet finnes allerede for denne delen"
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr "Testnavn"
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr "Angi et navn for testen"
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr "Testbeskrivelse"
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr "Legg inn beskrivelse for denne testen"
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr "Påkrevd"
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr "Er det påkrevd at denne testen bestås?"
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr "Krever verdi"
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr "Krever denne testen en verdi når det legges til et testresultat?"
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr "Krever vedlegg"
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr "Krever denne testen et filvedlegg når du legger inn et testresultat?"
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr "Avmerkingsboks parameter kan ikke ha enheter"
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr "Avmerkingsboks parameter kan ikke har valg"
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr "Valg må være unikt"
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr "Navn på parametermal må være unikt"
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr "Parameternavn"
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr "Fysisk enheter for denne parameteren"
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr "Parameterbeskrivelse"
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr "Avmerkingsboks"
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr "Er dette parameteret en avmerkingsboks?"
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr "Valg"
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr "Gyldige valg for denne parameteren (kommaseparert)"
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr "Ugyldig valg for parameterverdi"
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr "Overordnet del"
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr "Parametermal"
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr "Data"
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr "Parameterverdi"
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr "Standardverdi"
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr "Standard Parameterverdi"
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr "Del-ID eller delnavn"
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr "Unik del-ID-verdi"
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr "Delens interne delnummerverdi"
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr "Nivå"
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr "BOM-nivå"
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr "BOM-artikkel"
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr "Velg overordnet del"
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr "Underordnet del"
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr "Velg del som skal brukes i BOM"
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr "BOM-antall for denne BOM-artikkelen"
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr "Denne BOM-artikkelen er valgfri"
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr "Denne BOM-artikkelen er forbruksvare (den spores ikke i produksjonsordrer)"
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr "Svinn"
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr "Forventet produksjonssvinn (absolutt eller prosent)"
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr "BOM-artikkelreferanse"
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr "BOM-artikkelnotater"
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr "Kontrollsum"
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr "BOM-linje kontrollsum"
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr "Godkjent"
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr "Denne BOM-artikkelen er godkjent"
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr "Arves"
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr "Denne BOM-artikkelen er arvet fra stykkliste for variantdeler"
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr "Tillat Varianter"
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr "Lagervarer for variantdeler kan brukes for denne BOM-artikkelen"
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr "Antall må være heltallsverdi for sporbare deler"
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr "Underordnet del må angis"
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr "BOM-artikkel erstatning"
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr "Erstatningsdel kan ikke være samme som hoveddelen"
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr "Overordnet BOM-artikkel"
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr "Erstatningsdel"
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr "Del 1"
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr "Del 2"
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr "Velg relatert del"
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr "Del-forhold kan ikke opprettes mellom en del og seg selv"
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr "Duplikatforhold eksisterer allerede"
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr "Innkjøpsvaluta for lagervaren"
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr "Ingen deler valgt"
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr "Velg kategori"
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr "Original Del"
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr "Velg original del å duplisere"
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr "Kopier Bilde"
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr "Kopier bilde fra originaldel"
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr "Kopier Stykkliste"
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr "Kopier stykkliste fra original del"
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr "Kopier parametere"
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr "Kopier parameterdata fra originaldel"
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr "Innledende lagerbeholdning"
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr "Angi initiell lagermengde for denne delen. Hvis antall er null, er ingen lagerbeholdning lagt til."
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr "Innledende lagerplassering"
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr "Angi initiell lagerplasering for denne delen"
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr "Velg leverandør (eller la stå tom for å hoppe over)"
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr "Velg produsent (eller la stå tom for å hoppe over)"
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr "Produsentens delenummer"
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr "Valgt firma er ikke en gyldig leverandør"
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr "Valgt firma er ikke en gyldig produsent"
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr "Produsentdel som matcher dette MPN-et, finnes allerede"
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr "Leverandørdel som matcher denne SKU-en, finnes allerede"
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr "Dupliser del"
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr "Kopier innledende data fra en annen del"
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr "Innledende lagerbeholdning"
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr "Lag en del med innledende lagermengde"
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr "Leverandøropplysninger"
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr "Legg til innledende leverandørinformasjon for denne delen"
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr "Kopier kategoriparametre"
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr "Kopier parametermaler fra valgt delkategori"
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr "Begrens lagerbeholdningsrapport til en bestemt del og enhver variant av delen"
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr "Begrens lagerbeholdningsrapport til en bestemt delkategori og alle underkategorier"
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr "Begrens lagerbeholdningsrapport til en bestemt plasering og eventuelle underplasseringer"
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr "Generer rapport"
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr "Genererer rapport som inneholder beregnede lagerdata"
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr "Oppdater deler"
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr "Oppdater spesifiserte deler med beregnede lagerbeholdningsdata"
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr "Lagerbeholdningsfunksjonalitet er ikke aktivert"
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr "Oppdater"
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr "Oppdater priser for denne delen"
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr "Velg del å kopiere BOM fra"
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr "Fjern eksisterende data"
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr "Fjern eksisterende BOM-artikler før kopiering"
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr "Inkluder arvet"
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr "Inkluder BOM-artikler som er arvet fra maldeler"
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr "Hopp over ugyldige rader"
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr "Aktiver dette alternativet for å hoppe over ugyldige rader"
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr "Kopier erstatningsdeler"
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr "Kopier erstatningsdeler når BOM elementer dupliseres"
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr "Nullstill eksisterende BOM"
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr "Fjern eksisterende BOM-artikler før opplastning"
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr "Ingen del-kolonne angitt"
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr "Flere matchende deler funnet"
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr "Ingen matchende delere funnet"
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr "Delen er ikke betegnet som en komponent"
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr "Antall ikke oppgitt"
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr "Ugyldig antall"
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr "Minst en BOM-artikkel kreves"
 
@@ -7062,8 +7112,8 @@ msgstr "Ingen samsvarende bilder funnet"
 msgid "Hide Part Details"
 msgstr "Skjul Deldetaljer"
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr "Leverandørprising"
 
@@ -7078,8 +7128,8 @@ msgstr "Enhetspris"
 msgid "No supplier pricing available"
 msgstr "Ingen leverandørpriser tilgjengelig"
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr "BOM-prising"
 
@@ -7147,7 +7197,20 @@ msgstr "Prisingoversikt"
 msgid "Refresh Part Pricing"
 msgstr "Oppdater delprising"
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7155,65 +7218,73 @@ msgstr "Oppdater delprising"
 msgid "Last Updated"
 msgstr "Sist oppdatert"
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr "Priskategori"
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr "Minimum"
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr "Maksimum"
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr "Intern Prising"
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr "Inkjøpshistorikk"
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr "Variantprising"
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr "Generell prising"
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr "Salgshistorikk"
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr "Salgsprisdata er ikke tilgjengelig for denne delen"
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr "Prisområdedata er ikke tilgjengelig for denne delen."
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr "Hopp til oversikt"
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr "Legg til internt prisbrudd"
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr "Salgsprising"
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr "Legg til salgsprisbrudd"
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9325,7 +9396,7 @@ msgid "Project Codes"
 msgstr "Prosjektkoder"
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr "Ny Prosjektkode"
 
@@ -9366,14 +9437,6 @@ msgstr "Rediger brukerinnstilling"
 msgid "Rate"
 msgstr "Vurder"
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr ""
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9397,68 +9460,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr "Ingen prosjektkoder funnet"
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr "Rediger prosjektkode"
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr "Slett prosjektkode"
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10801,10 +10869,6 @@ msgstr ""
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index 95c58eac2e..341fdfc1e1 100644
--- a/InvenTree/locale/pl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pl/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Polish\n"
 "Language: pl_PL\n"
@@ -56,8 +56,8 @@ msgstr "Wprowadź dane"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr "Załącznik"
 msgid "Select file to attach"
 msgstr "Wybierz plik do załączenia"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr "Komentarz"
 msgid "File comment"
 msgstr "Komentarz pliku"
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr ""
 msgid "Invalid choice"
 msgstr "Błędny wybór"
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr "Nazwa"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr "Nazwa"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr "Błąd serwera"
 msgid "An error has been logged by the server."
 msgstr "Błąd został zapisany w logach serwera."
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "Numer musi być prawidłowy"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -661,7 +661,7 @@ msgstr ""
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr "Sprawdzenie robotnika w tle nie powiodło się"
 
@@ -917,14 +917,14 @@ msgstr "O InvenTree"
 msgid "Build must be cancelled before it can be deleted"
 msgstr "Kompilacja musi zostać anulowana, zanim będzie mogła zostać usunięta"
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr ""
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -993,7 +993,7 @@ msgstr "Odwołanie do zamówienia wykonania"
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1023,11 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1168,13 @@ msgid "User who issued this build order"
 msgstr "Użytkownik, który wydał to zamówienie"
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1206,7 @@ msgstr ""
 msgid "Priority of this build order"
 msgstr ""
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1244,7 @@ msgstr "Skompilowane dane wyjściowe nie pasują do kolejności kompilacji"
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr "Ilość musi być większa niż zero"
@@ -1258,10 +1259,10 @@ msgstr ""
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1426,7 @@ msgid "A list of build outputs must be provided"
 msgstr ""
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2032,1365 +2033,1369 @@ msgstr "{name.title()} Plik"
 msgid "Select {name} file to upload"
 msgstr "Wybierz plik {name} do przesłania"
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr ""
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr ""
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr ""
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr ""
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr ""
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr "Ustawienia wartości"
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr ""
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr "Wartość musi być wartością binarną"
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr "Wartość musi być liczbą całkowitą"
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr "Ciąg musi być unikatowy"
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr "Brak grupy"
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr ""
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr ""
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr "Wymagane ponowne uruchomienie"
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr "Zmieniono ustawienie, które wymaga restartu serwera"
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr ""
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr "Użyj nazwy instancji"
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr ""
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr ""
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr ""
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr "Nazwa firmy"
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr "Wewnętrzna nazwa firmy"
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr "Bazowy URL"
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr "Bazowy adres URL dla instancji serwera"
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr "Domyślna waluta"
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr ""
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr "dni"
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr "Pobierz z adresu URL"
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr "Zezwól na pobieranie zewnętrznych obrazów i plików z zewnętrznego URL"
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr ""
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr ""
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr ""
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr ""
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr ""
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr ""
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr ""
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr ""
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr ""
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr ""
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr ""
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr ""
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr ""
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr ""
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr ""
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr ""
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr "Obsługa kodu kreskowego"
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr ""
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr ""
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr ""
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr ""
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr ""
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr ""
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr "Wyrażenie regularne IPN"
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr ""
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr "Zezwól na powtarzający się IPN"
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr ""
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr "Zezwól na edycję IPN"
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr ""
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr "Skopiuj BOM komponentu"
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr ""
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr ""
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr ""
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr ""
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr "Szablon"
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr "Złożenie"
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr ""
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr "Komponent"
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr ""
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr "Możliwość zakupu"
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr "Części są domyślnie z możliwością zakupu"
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr "Możliwość sprzedaży"
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr "Części są domyślnie z możliwością sprzedaży"
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr "Możliwość śledzenia"
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr "Części są domyślnie z możliwością śledzenia"
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr "Wirtualny"
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr "Części są domyślnie wirtualne"
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr ""
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr ""
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr ""
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr ""
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr ""
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr ""
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr ""
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr ""
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr ""
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr ""
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr ""
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr ""
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr ""
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr ""
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr ""
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr ""
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr ""
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr ""
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr ""
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr ""
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr ""
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr ""
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr ""
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr "Ceny wewnętrzne"
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr ""
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr ""
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr ""
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr "Włącz drukowanie etykiet"
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr "Włącz drukowanie etykiet z interfejsu WWW"
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr "DPI etykiety"
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr ""
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr "Włącz raporty"
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr ""
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr "Tryb Debugowania"
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr ""
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr "Rozmiar strony"
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr "Domyślna wielkość strony dla raportów PDF"
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr ""
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr "Włącz generowanie raportów testów"
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr ""
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr ""
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr ""
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr ""
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr ""
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr ""
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr ""
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr ""
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr ""
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr ""
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr ""
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr ""
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr ""
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr ""
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr ""
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr ""
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr ""
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr ""
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr ""
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr ""
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr ""
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr ""
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr ""
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr ""
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr ""
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr ""
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr ""
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr ""
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr ""
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr ""
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr ""
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr ""
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr ""
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr ""
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr "Włącz opcję zapomnianego hasła"
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr "Włącz funkcję zapomnianego hasła na stronach logowania"
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr "Włącz rejestrację"
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr "Włącz samodzielną rejestrację dla użytkowników na stronach logowania"
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr "Włącz SSO"
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr "Włącz SSO na stronach logowania"
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr ""
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr ""
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr "Adres e-mail jest wymagany"
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr ""
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr "Autouzupełnianie użytkowników SSO"
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr "Automatycznie wypełnij dane użytkownika z danych konta SSO"
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr "E-mail dwa razy"
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr "Przy rejestracji dwukrotnie zapytaj użytkowników o ich adres e-mail"
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr "Hasło dwukrotnie"
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr "Przy rejestracji dwukrotnie zapytaj użytkowników o ich hasło"
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr ""
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr "Grupuj przy rejestracji"
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr ""
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr "Wymuś MFA"
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr "Użytkownicy muszą używać zabezpieczeń wieloskładnikowych."
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr "Sprawdź wtyczki przy starcie"
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr ""
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr "Włącz integrację URL"
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr "Włącz wtyczki, aby dodać ścieżki URL"
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr ""
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr ""
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr "Włącz integrację z aplikacją"
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr "Włącz wtyczki, aby dodać aplikacje"
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr ""
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr "Włącz wtyczki, aby uruchamiać zaplanowane zadania"
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr ""
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr ""
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr ""
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr ""
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr ""
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr ""
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr "Klucz ustawień (musi być unikalny - niewrażliwy na wielkość liter"
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr ""
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr "Pokaż obserwowane części"
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr "Pokaż obserwowane części na stronie głównej"
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr "Pokaż obserwowane kategorie"
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr "Pokaż obserwowane kategorie części na stronie głównej"
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr "Pokaż najnowsze części"
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr "Pokaż najnowsze części na stronie głównej"
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr ""
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr ""
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr ""
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr "Pokaż niski stan magazynowy"
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr "Pokaż elementy o niskim stanie na stronie głównej"
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr ""
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr "Pokaż wymagany stan zapasów"
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr ""
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr ""
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr ""
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr ""
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr ""
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr ""
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr ""
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr ""
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr ""
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr ""
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr ""
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr ""
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr ""
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr ""
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr ""
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr ""
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr ""
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr ""
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr ""
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr "Szukaj części"
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr ""
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr ""
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr ""
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr ""
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr ""
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr "Ukryj nieaktywne części"
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr ""
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr ""
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr ""
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr ""
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr ""
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr ""
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr ""
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr ""
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr ""
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr ""
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr ""
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr ""
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr ""
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr ""
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr ""
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr ""
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr ""
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr ""
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr ""
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr ""
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr ""
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr ""
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr ""
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr ""
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr ""
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr "Pokaż ilość w formularzach"
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr ""
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr ""
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr ""
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr "Stały pasek nawigacyjny"
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr ""
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr "Format daty"
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr "Preferowany format wyświetlania dat"
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr "Planowanie komponentów"
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr ""
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr ""
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr ""
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr ""
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3398,23 +3403,23 @@ msgstr ""
 msgid "Price"
 msgstr "Cena"
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr "Punkt końcowy"
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr ""
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr ""
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3423,101 +3428,101 @@ msgstr ""
 msgid "Active"
 msgstr "Aktywny"
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr ""
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr ""
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr ""
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr "Sekret"
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr "Współdzielony sekret dla HMAC"
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr "Id wiadomości"
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr "Unikalny identyfikator dla tej wiadomości"
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr ""
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr "Host, od którego otrzymano tę wiadomość"
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr "Nagłówek"
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr "Nagłówek tej wiadomości"
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr "Zawartość"
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr ""
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr ""
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr ""
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr ""
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr ""
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr ""
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr ""
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr "Autor"
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr ""
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr ""
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr ""
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3527,31 +3532,31 @@ msgstr ""
 msgid "Image"
 msgstr "Obraz"
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr ""
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3806,7 +3811,7 @@ msgstr "Wybierz część"
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3821,7 +3826,7 @@ msgid "Select manufacturer"
 msgstr "Wybierz producenta"
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3867,7 +3872,7 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3893,7 +3898,7 @@ msgstr ""
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3911,7 +3916,7 @@ msgid "Select supplier"
 msgstr "Wybierz dostawcę"
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3919,7 +3924,7 @@ msgstr "Wybierz dostawcę"
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -3936,7 +3941,7 @@ msgid "Supplier part description"
 msgstr ""
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4783,7 +4788,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr ""
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr "Cena sprzedaży"
 
@@ -5478,38 +5483,42 @@ msgstr ""
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr ""
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr "ID komponentu"
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr "Nazwa komponentu"
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr ""
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr ""
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr "Wersja"
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr "Słowa kluczowe"
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr "ID kategorii"
@@ -5556,11 +5565,13 @@ msgstr "Użyte w"
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5577,7 +5588,7 @@ msgstr ""
 msgid "Category Path"
 msgstr "Ścieżka kategorii"
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5600,16 +5611,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr "IPN komponentu"
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr ""
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr ""
@@ -5660,7 +5673,7 @@ msgstr "Dostępna ilość"
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr "Kategoria komponentu"
@@ -5694,7 +5707,7 @@ msgid "Default keywords for parts in this category"
 msgstr ""
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr ""
 
@@ -5741,7 +5754,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr "Nazwa komponentu"
 
@@ -5765,10 +5778,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr ""
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5876,151 +5889,159 @@ msgstr "Ostatnia inwentaryzacja"
 msgid "Sell multiple"
 msgstr "Sprzedaj wiele"
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6028,567 +6049,596 @@ msgstr ""
 msgid "Date"
 msgstr "Data"
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr ""
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr ""
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr ""
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr ""
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr "Nazwa testu"
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr ""
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr "Testowy opis"
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr "Wprowadź opis do tego testu"
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr "Wymagane"
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr "Wymaga wartości"
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr "Wymaga załącznika"
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr ""
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr ""
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr "Część nadrzędna"
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr "Dane"
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr "Wartość parametru"
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr "Wartość domyślna"
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr ""
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr ""
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr "Unikalny wartość ID komponentu"
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr "Wartość IPN części"
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr "Poziom"
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr "Element BOM"
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr "Wybierz część nadrzędną"
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr "Podczęść"
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr ""
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr "Ten element BOM jest opcjonalny"
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr ""
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr ""
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr "Notatki pozycji BOM"
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr "Suma kontrolna"
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr "Zatwierdzone"
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr "Zezwalaj na warianty"
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr ""
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr ""
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr "Część zastępcza"
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr "Część 1"
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr "Część 2"
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr "Wybierz powiązaną część"
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr "Waluta zakupu tego towaru"
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr ""
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr "Kopiuj obraz"
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr ""
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr "Kopiuj BOM"
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr "Kopiuj parametry"
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr ""
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr "Duplikuj część"
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr ""
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr "Usuń istniejące dane"
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr "Pomiń nieprawidłowe wiersze"
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr "Włącz tę opcję, aby pominąć nieprawidłowe wiersze"
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr "Wyczyść istniejący BOM"
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr ""
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr "Nie podano ilości"
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr "Nieprawidłowa ilość"
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7062,8 +7112,8 @@ msgstr "Nie znaleziono pasujących obrazów"
 msgid "Hide Part Details"
 msgstr "Ukryj szczegóły części"
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr "Cennik dostawcy"
 
@@ -7078,8 +7128,8 @@ msgstr "Cena jednostkowa"
 msgid "No supplier pricing available"
 msgstr "Brak dostępnych cen dostawców"
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7147,7 +7197,20 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7155,65 +7218,73 @@ msgstr ""
 msgid "Last Updated"
 msgstr "Ostatnia aktualizacja"
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr ""
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr "Przejdź do przeglądu"
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9325,7 +9396,7 @@ msgid "Project Codes"
 msgstr ""
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr ""
 
@@ -9366,14 +9437,6 @@ msgstr "Edytuj ustawienie użytkownika"
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr ""
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9397,68 +9460,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr "Nie znaleziono szablonów parametrów kategorii"
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr "Edytuj szablon"
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr "Usuń szablon"
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10801,10 +10869,6 @@ msgstr ""
 msgid "No user information"
 msgstr "Brak informacji o użytkowniku"
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po
index db909d5869..9e4c2d1fec 100644
--- a/InvenTree/locale/pt/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pt/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:37\n"
 "Last-Translator: \n"
 "Language-Team: Portuguese, Brazilian\n"
 "Language: pt_BR\n"
@@ -56,8 +56,8 @@ msgstr "Insira uma Data"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr "Anexo"
 msgid "Select file to attach"
 msgstr "Selecione arquivo para anexar"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr "Comentario"
 msgid "File comment"
 msgstr "Comentario sobre arquivo"
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr "Nomes duplicados não podem existir sob o mesmo parental"
 msgid "Invalid choice"
 msgstr "Escolha inválida"
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr "Nome"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr "Nome"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr "Erro de servidor"
 msgid "An error has been logged by the server."
 msgstr "Log de erro salvo pelo servidor."
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "Preicsa ser um numero valido"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -661,7 +661,7 @@ msgstr "Chinês (Simplificado)"
 msgid "Chinese (Traditional)"
 msgstr "Chinês (Tradicional)"
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr "Falha em verificar o histórico do trabalhador"
 
@@ -917,14 +917,14 @@ msgstr "Sobre o InvenTree"
 msgid "Build must be cancelled before it can be deleted"
 msgstr "Produção deve ser cancelada antes de ser deletada"
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr "Consumível"
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -993,7 +993,7 @@ msgstr "Referência do pedido de produção"
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1023,11 @@ msgstr "Pedido de produção para qual este serviço está alocado"
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1168,13 @@ msgid "User who issued this build order"
 msgstr "Usuário que emitiu este pedido de produção"
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1206,7 @@ msgstr "Prioridade de Produção"
 msgid "Priority of this build order"
 msgstr "Prioridade deste pedido de produção"
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1244,7 @@ msgstr "Saída da produção não corresponde ao Pedido de Produção"
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr "Quantidade deve ser maior que zero"
@@ -1258,10 +1259,10 @@ msgstr "Objeto de produção"
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1426,7 @@ msgid "A list of build outputs must be provided"
 msgstr "Uma lista de saídas de produção deve ser fornecida"
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2032,1365 +2033,1369 @@ msgstr "Arquivo {name.title()}"
 msgid "Select {name} file to upload"
 msgstr "Selecione {name} arquivo para carregar"
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr "Atualizado"
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr "Tempo da última atualização"
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr "Código único do projeto"
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr "Descrição do projeto"
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr "Senha de configurações (deve ser única — diferencia maiúsculas de minúsculas)"
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr "Valor da Configuração"
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr "Valor escolhido não é uma opção válida"
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr "Valor deve ser um valor booleano"
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr "Valor deve ser um número inteiro"
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr "A frase senha deve ser diferenciada"
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr "Nenhum grupo"
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr "Um domínio vazio não é permitido."
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr "Nome de domínio inválido: {domain}"
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr "Reinicialização necessária"
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr "Uma configuração que requer uma reinicialização do servidor foi alterada"
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr "Nome da Instância do Servidor"
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr "Descritor de frases para a instância do servidor"
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr "Usar nome da instância"
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr "Usar o nome da instância na barra de título"
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr "Restringir a exibição 'sobre'"
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr "Mostrar 'sobre' modal apenas para superusuários"
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr "Nome da empresa"
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr "Nome interno da Empresa"
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr "URL de Base"
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr "URL Base da instância do servidor"
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr "Moeda Padrão"
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr "Selecione a moeda base para cálculos de preços"
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr "dias"
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr "Baixar do URL"
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr "Permitir baixar imagens remotas e arquivos de URLs externos"
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr "Limite de tamanho para baixar"
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr "Maior tamanho de imagem remota baixada permitida"
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr "Usuário-agente utilizado para baixar da URL"
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr "Permitir a substituição de imagens e arquivos usados baixados por usuário-agente (deixar em branco por padrão)"
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr "Exigir confirmação"
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr "Exigir confirmação explícita do usuário para uma certa ação."
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr "Profundidade da árvore"
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr "Profundidade padrão de visualização da árvore. Níveis mais profundos podem ser carregados gradualmente conforme necessário."
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr "Atualizar Intervalo de Verificação"
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr "Frequência para verificar atualizações (defina como zero para desativar)"
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr "Cópia de Segurança Automática"
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr "Ativar cópia de segurança automática do banco de dados e arquivos de mídia"
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr "Intervalo de Backup Automático"
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr "Especificar o número de dia entre as cópias de segurança"
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr "Intervalo para Excluir da Tarefa"
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr "Os resultados da tarefa no plano de fundo serão excluídos após um número especificado de dias"
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr "Intervalo para Excluir do Registro de Erro"
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr "Registros de erros serão excluídos após um número especificado de dias"
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr "Intervalo para Excluir de Notificação"
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr "Notificações de usuários será excluído após um número especificado de dias"
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr "Suporte aos códigos de barras"
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr "Atraso na entrada de código de barras"
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr "Tempo de atraso de processamento de entrada de barras"
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr "Suporte a código de barras via Câmera"
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr "Permitir escanear código de barras por câmera pelo navegador"
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr "Revisões de peças"
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr "Habilitar campo de revisão para a Peça"
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr "Regex IPN"
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr "Padrão de expressão regular adequado para Peça IPN"
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr "Permitir Duplicação IPN"
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr "Permitir que várias peças compartilhem o mesmo IPN"
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr "Permitir Edição IPN"
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr "Permitir trocar o valor do IPN enquanto se edita a peça"
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr "Copiar dados da LDM da Peça"
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr "Copiar dados da LDM por padrão quando duplicar a peça"
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr "Copiar Dados de Parâmetro da Peça"
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr "Copiar dados de parâmetros por padrão quando duplicar uma peça"
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr "Copiar Dados Teste da Peça"
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr "Copiar dados de teste por padrão quando duplicar a peça"
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr "Copiar Parâmetros dos Modelos de Categoria"
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr "Copiar parâmetros do modelo de categoria quando criar uma peça"
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr "Modelo"
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr "Peças são modelos por padrão"
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr "Montagem"
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr "Peças podem ser montadas a partir de outros componentes por padrão"
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr "Componente"
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr "Peças podem ser usadas como sub-componentes por padrão"
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr "Comprável"
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr "Peças são compráveis por padrão"
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr "Vendível"
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr "Peças vão vendíveis por padrão"
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr "Rastreável"
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr "Peças vão rastreáveis por padrão"
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr "Virtual"
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr "Peças são virtuais por padrão"
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr "Mostrar Importações em Visualizações"
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr "Exibir o assistente de importação em algumas visualizações de partes"
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr "Mostra peças relacionadas"
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr "Mostrar peças relacionadas para uma peça"
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr "Dados Iniciais de Estoque"
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr "Permitir Criação de estoque inicial quando adicional uma nova peça"
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr "Dados Iniciais de Fornecedor"
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr "Permitir criação de dados iniciais de fornecedor quando adicionar uma nova peça"
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr "Formato de Exibição do Nome da Peça"
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr "Formato para exibir o nome da peça"
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr "Ícone de Categoria de Peça Padrão"
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr "Ícone padrão de categoria de peça (vazio significa sem ícone)"
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr "Forçar Unidades de Parâmetro"
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr "Se as unidades são fornecidas, os valores do parâmetro devem corresponder às unidades especificadas"
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr "Mínimo de Casas Decimais do Preço"
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr "Mínimo número de casas decimais a exibir quando renderizar dados de preços"
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr "Máximo Casas Decimais de Preço"
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr "Número máximo de casas decimais a exibir quando renderizar dados de preços"
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr "Usar Preços do Fornecedor"
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr "Incluir quebras de preço do fornecedor nos cálculos de preços globais"
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr "Sobrescrever histórico de compra"
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr "Histórico do pedido de compra substitui os intervalos dos preços do fornecedor"
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr "Usar Preços do Item em Estoque"
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr "Usar preço inserido manualmente no estoque para cálculos de valores"
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr "Idade do preço do Item em Estoque"
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr "Não incluir itens em estoque mais velhos que este número de dias no cálculo de preços"
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr "Usar Preço Variável"
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr "Incluir preços variáveis nos cálculos de valores gerais"
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr "Apenas Ativar Variáveis"
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr "Apenas usar peças variáveis ativas para calcular preço variáveis"
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr "Intervalo de Reconstrução de Preços"
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr "Número de dias antes da atualização automática dos preços das peças"
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr "Preços Internos"
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr "Habilitar preços internos para peças"
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr "Sobrepor Valor Interno"
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr "Se disponível, preços internos sobrepõe variação de cálculos de preço"
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr "Ativar impressão de etiquetas"
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr "Ativar impressão de etiqueta pela interface da internet"
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr "DPI da Imagem na Etiqueta"
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr "Resolução de DPI quando gerar arquivo de imagens para fornecer à extensão de impressão de etiquetas"
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr "Habilitar Relatórios"
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr "Ativar geração de relatórios"
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr "Modo de depuração"
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr "Gerar relatórios em modo de depuração (saída HTML)"
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr "Tamanho da página"
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr "Tamanho padrão da página PDF para relatórios"
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr "Ativar Relatórios Teste"
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr "Ativar geração de relatórios de teste"
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr "Anexar Relatórios de Teste"
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr "Quando imprimir um Relatório de Teste, anexar uma cópia do mesmo ao item de estoque associado"
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr "Seriais Únicos Globais"
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr "Números de série para itens de estoque devem ser globalmente únicos"
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr "Preenchimento automático de Números Seriais"
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr "Preencher números de série automaticamente no formulário"
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr "Excluir Estoque Esgotado"
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr "Determina o comportamento padrão quando um item de estoque é esgotado"
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr "Modelo de Código de Lote"
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr "Modelo para gerar códigos de lote padrão para itens de estoque"
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr "Validade do Estoque"
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr "Ativar função de validade de estoque"
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr "Vender estoque expirado"
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr "Permitir venda de estoque expirado"
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr "Tempo de Estoque Inativo"
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr "Número de dias em que os itens em estoque são considerados obsoleto antes de vencer"
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr "Produzir Estoque Vencido"
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr "Permitir produção com estoque vencido"
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr "Controle de propriedade do estoque"
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr "Ativar controle de propriedade sobre locais e itens de estoque"
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr "Ícone padrão do local de estoque"
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr "Ícone padrão de local de estoque (vazio significa sem ícone)"
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr "Mostrar Itens de Estoque Instalados"
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr "Exibir itens de estoque instalados nas tabelas de estoque"
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr "Modelo de Referência de Pedidos de Produção"
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr "Modelo necessário para gerar campo de referência do Pedido de Produção"
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr "Ativar Pedidos de Devolução"
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr "Ativar funcionalidade de pedido de retorno na interface do usuário"
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr "Modelo de Referência de Pedidos de Devolução"
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr "Modelo necessário para gerar campo de referência do Pedido de Devolução"
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr "Editar os Pedidos de Devolução Concluídos"
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr "Permitir a edição de pedidos de devolução após serem enviados ou concluídos"
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr "Modelo de Referência de Pedidos de Venda"
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr "Modelo necessário para gerar campo de referência do Pedido de Venda"
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr "Envio Padrão de Pedidos de Venda"
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr "Habilitar criação de envio padrão com Pedidos de Vendas"
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr "Editar os Pedidos de Vendas concluídos"
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr "Permitir a edição de pedidos de vendas após serem enviados ou concluídos"
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr "Modelo de Referência de Pedidos de Compras"
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr "Modelo necessário para gerar campo de referência do Pedido de Compra"
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr "Editar Pedidos de Compra Concluídos"
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr "Permitir a edição de pedidos de compras após serem enviados ou concluídos"
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr "Habitar esquecer senha"
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr "Habilitar a função \"Esqueci minha senha\" nas páginas de acesso"
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr "Habilitar cadastro"
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr "Ativar auto-registro para usuários na página de entrada"
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr "Ativar SSO"
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr "Ativar SSO na página de acesso"
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr "Ativar registro SSO"
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr "Ativar auto-registro por SSO para usuários na página de entrada"
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr "Email obrigatório"
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr "Exigir do usuário o e-mail no cadastro"
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr "Auto-preencher usuários SSO"
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr "Preencher automaticamente os detalhes do usuário a partir de dados da conta SSO"
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr "Enviar email duplo"
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr "No registro pedir aos usuários duas vezes pelo email"
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr "Senha duas vezes"
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr "No registro pedir aos usuários duas vezes pela senha"
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr "Domínios permitidos"
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr "Restringir registros a certos domínios (separados por vírgula, começando com @)"
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr "Grupo no cadastro"
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr "Grupo ao qual novos usuários são atribuídos no registro"
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr "Forçar AMF"
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr "Os usuários devem usar uma segurança multifator."
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr "Checar extensões no início"
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr "Checar que todas as extensões instaladas no início — ativar em ambientes de contêineres"
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr "Ativar integração URL"
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr "Ativar extensão para adicionar rotas URL"
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr "Ativar integração de navegação"
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr "Ativar extensões para integrar à navegação"
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr "Ativa integração com aplicativo"
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr "Ativar extensões para adicionar aplicativos"
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr "Ativar integração do calendário"
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr "Ativar extensões para executar tarefas agendadas"
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr "Ativar integração de eventos"
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr "Ativar extensões para responder a eventos internos"
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr "Habilitar códigos de projeto"
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr "Ativar códigos de projeto para rastrear projetos"
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr "Funcionalidade de Balanço do Inventário"
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr "Ativar funcionalidade de balanço para gravar níveis de estoque e calcular seu valor"
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr "Excluir Locais Externos"
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr "Excluir itens de estoque em locais externos dos cálculos do estoque"
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr "Período de Balanço Automático"
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr "Número de dias entre gravação do balanço de estoque (coloque zero para desativar)"
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr "Intervalo para Excluir o Relatório"
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr "Relatórios de balanço serão apagados após um número de dias especificado"
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr "Senha de configurações (deve ser única — diferencia maiúsculas de minúsculas"
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr "Ocultar peças inativas"
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr "Ocultar peças inativas nos resultados exibidos na página inicial"
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr "Mostrar peças subscritas"
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr "Mostrar peças subscritas na tela inicial"
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr "Mostrar categorias subscritas"
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr "Mostrar categorias de peças subscritas na tela inicial"
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr "Mostrar peças mais recentes"
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr "Mostrar as peças mais recentes na página inicial"
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr "Mostrar LDMs não validadas"
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr "Mostrar LDMs que aguardam validação na página inicial"
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr "Mostrar alterações recentes de estoque"
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr "Mostrar itens de estoque alterados recentemente na página inicial"
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr "Mostrar estoque baixo"
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr "Mostrar itens de baixo estoque na página inicial"
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr "Mostrar estoque esgotado"
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr "Mostrar itens sem estoque na página inicial"
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr "Mostrar estoque necessário"
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr "Mostrar itens de estoque necessários para produções na tela inicial"
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr "Mostrar estoque expirado"
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr "Mostrar expirados itens em estoque na tela inicial"
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr "Mostrar estoque inativo"
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr "Mostrar estoque inativo na tela inicial"
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr "Mostrar produções pendentes"
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr "Mostrar produções pendentes na tela inicial"
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr "Mostrar produções atrasadas"
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr "Mostrar produções atrasadas na tela inicial"
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr "Mostrar pedidos de compra pendentes"
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr "Mostrar os Pedidos de Compras pendentes na página inicial"
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr "Mostrar Pedidos de Compra atrasados"
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr "Mostrar os Pedidos de Compras atrasadas na tela inicial"
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr "Mostrar pedidos de vendas pendentes"
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr "Mostrar os Pedidos de Vendas pendentes na página inicial"
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr "Mostrar Pedidos de Venda atrasados"
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr "Mostrar os Pedidos de Vendas atrasadas na tela inicial"
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr "Mostrar remessas de OV pendentes"
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr "Mostrar envios OV pendentes na tela inicial"
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr "Mostrar notícias"
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr "Mostrar notícias na tela inicial"
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr "Mostrar etiqueta em linha"
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr "Mostrar etiquetas em PDF no navegador, ao invés de baixar o arquivo"
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr "Impressora de etiquetas padrão"
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr "Configurar qual impressora de etiqueta deve ser selecionada por padrão"
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr "Mostrar relatório em linha"
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr "Mostrar relatórios em PDF no navegador, ao invés de baixar o arquivo"
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr "Procurar Peças"
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr "Mostrar peças na janela de visualização de pesquisa"
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr "Buscar Peças do Fornecedor"
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr "Mostrar fornecedor de peças na janela de visualização de pesquisa"
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr "Buscar peças do fabricante"
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr "Mostrar fabricante de peças na janela de visualização de pesquisa"
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr "Ocultar peças inativas"
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr "Não incluir peças inativas na janela de visualização de pesquisa"
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr "Pesquisar Categorias"
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr "Mostrar categoria das peças na janela de visualização de pesquisa"
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr "Pesquisar Estoque"
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr "Mostrar itens do estoque na janela de visualização de pesquisa"
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr "Ocultar itens do estoque indisponíveis"
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr "Não incluir itens de estoque que não estão disponíveis na janela de visualização de pesquisa"
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr "Procurar Locais"
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr "Mostrar locais de estoque na janela de visualização de pesquisa"
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr "Pesquisar empresas"
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr "Mostrar empresas na janela de visualização de pesquisa"
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr "Procurar Pedidos de Produção"
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr "Mostrar pedidos de produção na janela de visualização de pesquisa"
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr "Mostrar Pedido de Compras"
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr "Mostrar pedidos de compra na janela de visualização de pesquisa"
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr "Não incluir Pedidos de Compras Inativos"
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr "Não incluir pedidos de compras inativos na janela de visualização de pesquisa"
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr "Procurar Pedidos de Vendas"
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr "Mostrar pedidos de vendas na janela de visualização de pesquisa"
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr "Não Incluir Pedidos de Compras Inativas"
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr "Não incluir pedidos de vendas inativos na janela de visualização de pesquisa"
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr "Procurar Pedidos de Devolução"
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr "Mostrar pedidos de devolução na janela de visualização de pesquisa"
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr "Não Incluir Pedidos de Devolução Inativas"
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr "Não incluir pedidos de devolução inativos na janela de visualização de pesquisa"
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr "Mostrar Resultados Anteriores"
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr "Número de resultados mostrados em cada seção da janela de visualização de pesquisa"
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr "Pesquisa de Regex"
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr "Permitir expressôes comuns nas conultas de pesquisas"
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr "Busca de Palavras Inteira"
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr "Pesquisa retorna que palavra inteira coincide"
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr "Mostrar Quantidade nos Formulários"
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr "Mostrar a quantidade de peças disponíveis em alguns formulários"
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr "Tecla Esc Fecha Formulários"
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr "Usar a tecla Esc para fechar fomulários modais"
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr "Fixar Navbar"
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr "A posição do Navbar é fixa no topo da tela"
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr "Formato da data"
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr "Formato preferido para mostrar datas"
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr "Agendamento de peças"
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr "Mostrar informações de agendamento de peças"
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr "Balanço de Peça"
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr "Mostrar informação de balanço da peça (se a funcionalidade de balanço estiver habilitada)"
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr "Comprimento da Tabela de Frases"
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr "Limite máximo de comprimento para frases exibidas nas visualizações de tabela"
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr "Modelo de rótulo padrão da peça"
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr "O modelo de rótulo da peça a ser selecionado automaticamente"
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr "Modelo padrão de item de estoque"
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr "O modelo de rótulo do item a ser selecionado automaticamente"
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr "Modelo de rótulo de localização do estoque padrão"
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr "O modelo de rótulo do local de estoque a ser selecionado automaticamente"
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr "Receber relatório de erros"
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr "Receber notificações para erros do sistema"
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr "Quantidade de Parcelamentos"
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3398,23 +3403,23 @@ msgstr "Quantidade de Parcelamentos"
 msgid "Price"
 msgstr "Preço"
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr "Preço unitário na quantidade especificada"
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr "Ponto final"
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr "Ponto final em qual o gancho web foi recebido"
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr "Nome para este webhook"
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3423,101 +3428,101 @@ msgstr "Nome para este webhook"
 msgid "Active"
 msgstr "Ativo"
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr "Este gancho web está ativo"
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr "Token"
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr "Token de acesso"
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr "Segredo"
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr "Segredo compartilhado para HMAC"
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr "ID da Mensagem"
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr "Identificador exclusivo desta mensagem"
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr "Servidor"
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr "Servidor do qual esta mensagem foi recebida"
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr "Cabeçalho"
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr "Cabeçalho da mensagem"
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr "Corpo"
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr "Corpo da mensagem"
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr "Ponto do qual esta mensagem foi recebida"
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr "Trabalhado em"
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr "O trabalho desta mensagem foi concluído?"
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr "Id"
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr "Título"
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr "Publicado"
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr "Autor"
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr "Resumo"
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr "Lida"
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr "Esta notícia do item foi lida?"
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3527,31 +3532,31 @@ msgstr "Esta notícia do item foi lida?"
 msgid "Image"
 msgstr "Imagem"
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr "Arquivo de imagem"
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr "Nome da unidade deve ser um identificador válido"
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr "Nome da unidade"
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr "Símbolo"
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr "Símbolo de unidade opcional"
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr "Definição"
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr "Definição de unidade"
 
@@ -3806,7 +3811,7 @@ msgstr "Selecionar peça"
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3821,7 +3826,7 @@ msgid "Select manufacturer"
 msgstr "Selecionar fabricante"
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3867,7 +3872,7 @@ msgid "Parameter value"
 msgstr "Valor do Parâmetro"
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3893,7 +3898,7 @@ msgstr "Parte do fabricante vinculado deve fazer referência à mesma peça base
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3911,7 +3916,7 @@ msgid "Select supplier"
 msgstr "Selecione o fornecedor"
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3919,7 +3924,7 @@ msgstr "Selecione o fornecedor"
 msgid "SKU"
 msgstr "Código (SKU)"
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr "Unidade de reserva de estoque fornecedor"
 
@@ -3936,7 +3941,7 @@ msgid "Supplier part description"
 msgstr "Descrição da peça fornecedor"
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4783,7 +4788,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr "Apenas peças vendáveis podem ser atribuídas a um pedido de venda"
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr "Preço de Venda"
 
@@ -5478,38 +5483,42 @@ msgstr "Atualizado {part} unid.-preço para {price}"
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr "Atualizado {part} unid.-preço para {price} e quantidade para {qty}"
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr "ID da Peça"
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr "Nome da Peça"
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr "Descrição da Peça"
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr "IPN"
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr "Revisão"
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr "Palavras chave"
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr "ID da Categoria"
@@ -5556,11 +5565,13 @@ msgstr "Usado em"
 msgid "Building"
 msgstr "Produzindo"
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr "Custo Mínimo"
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr "Custo Máximo"
 
@@ -5577,7 +5588,7 @@ msgstr "Nome Paternal"
 msgid "Category Path"
 msgstr "Caminho da Categoria"
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5600,16 +5611,18 @@ msgstr "ID Item LDM"
 msgid "Parent IPN"
 msgstr "IPN Paternal"
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr "IPN da Peça"
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr "Preço Mínimo"
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr "Preço Máximo"
@@ -5660,7 +5673,7 @@ msgstr "Estoque Disponível"
 msgid "Input quantity for price calculation"
 msgstr "Quantidade para o cálculo de preço"
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr "Categoria da Peça"
@@ -5694,7 +5707,7 @@ msgid "Default keywords for parts in this category"
 msgstr "Palavras-chave padrão para peças nesta categoria"
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr "Ícone"
 
@@ -5741,7 +5754,7 @@ msgstr "Uma parte com este Nome, IPN e Revisão já existe."
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr "Peças não podem ser atribuídas a categorias estruturais!"
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr "Nome da peça"
 
@@ -5765,10 +5778,10 @@ msgstr "Descrição da peça (opcional)"
 msgid "Part keywords to improve visibility in search results"
 msgstr "Palavras-chave para melhorar a visibilidade nos resultados da pesquisa"
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5876,151 +5889,159 @@ msgstr "Último Balanço"
 msgid "Sell multiple"
 msgstr "Venda múltipla"
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr "Moeda usada para armazenar os cálculos de preços"
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr "Custo Mínimo da LDM"
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr "Custo mínimo das peças componentes"
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr "Custo Máximo da LDM"
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr "Custo máximo das peças componentes"
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr "Custo Mínimo de Compra"
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr "Custo mínimo histórico de compra"
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr "Custo Máximo de Compra"
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr "Custo máximo histórico de compra"
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr "Preço Interno Mínimo"
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr "Custo mínimo baseado nos intervalos de preço internos"
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr "Preço Interno Máximo"
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr "Custo máximo baseado nos intervalos de preço internos"
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr "Preço Mínimo do Fornecedor"
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr "Preço mínimo da peça de fornecedores externos"
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr "Preço Máximo do Fornecedor"
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr "Preço máximo da peça de fornecedores externos"
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr "Custo Mínimo variável"
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr "Custo mínimo calculado das peças variáveis"
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr "Custo Máximo Variável"
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr "Custo máximo calculado das peças variáveis"
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr "Custo total mínimo calculado"
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr "Custo total máximo calculado"
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr "Preço Mínimo de Venda"
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr "Preço mínimo de venda baseado nos intervalos de preço"
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr "Preço Máximo de Venda"
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr "Preço máximo de venda baseado nos intervalos de preço"
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr "Custo Mínimo de Venda"
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr "Preço histórico mínimo de venda"
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr "Custo Máximo de Venda"
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr "Preço histórico máximo de venda"
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr "Peça para Balanço"
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr "Total de Itens"
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr "Número de entradas de estoques individuais no momento do balanço"
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr "Estoque total disponível no momento do balanço"
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6028,567 +6049,596 @@ msgstr "Estoque total disponível no momento do balanço"
 msgid "Date"
 msgstr "Data"
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr "Data de realização do balanço"
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr "Notas adicionais"
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr "Usuário que fez o balanço"
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr "Custo Mínimo de Estoque"
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr "Custo mínimo estimado de estoque disponível"
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr "Custo Máximo de Estoque"
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr "Custo máximo estimado de estoque disponível"
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr "Reportar"
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr "Arquivo de Relatório de Balanço (gerado internamente)"
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr "Contagem de Peças"
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr "Número de peças cobertas pelo Balanço"
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr "Usuário que solicitou este relatório de balanço"
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr "Modelos de teste só podem ser criados para peças rastreáveis"
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr "O teste com este nome já existe para esta peça"
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr "Nome de Teste"
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr "Insira um nome para o teste"
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr "Descrição do Teste"
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr "Digite a descrição para este teste"
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr "Requerido"
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr "Este teste é obrigatório passar?"
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr "Requer Valor"
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr "Este teste requer um valor ao adicionar um resultado de teste?"
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr "Anexo obrigatório"
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr "Este teste requer um anexo ao adicionar um resultado de teste?"
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr "Parâmetros da caixa de seleção não podem ter unidades"
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr "Os parâmetros da caixa de seleção não podem ter escolhas"
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr "Escolhas devem ser únicas"
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr "Nome do modelo de parâmetro deve ser único"
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr "Nome do Parâmetro"
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr "Unidades físicas para este parâmetro"
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr "Descrição do Parâmetro"
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr "Caixa de seleção"
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr "Este parâmetro é uma caixa de seleção?"
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr "Escolhas"
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr "Opções válidas para este parâmetro (separadas por vírgulas)"
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr "Escolha inválida para valor do parâmetro"
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr "Peça Paternal"
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr "Modelo de parâmetro"
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr "Dados"
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr "Valor do Parâmetro"
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr "Valor Padrão"
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr "Valor Padrão do Parâmetro"
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr "ID da peça ou nome da peça"
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr "Valor exclusivo do ID de peça"
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr "Valor da parte IPN"
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr "Nível"
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr "Nível da LDM"
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr "Item LDM"
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr "Selecione a Peça Parental"
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr "Sub peça"
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr "Selecionar peça a ser usada na LDM"
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr "Quantidade de LDM para este item LDM"
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr "Este item LDM é opcional"
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr "Este item LDM é consumível (não é rastreado nos pedidos de construção)"
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr "Excedente"
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr "Quantidade estimada de desperdício (absoluto ou porcentagem)"
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr "Referência do Item LDM"
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr "Notas do Item LDM"
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr "Soma de verificação"
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr "Soma de Verificação da LDM da linha"
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr "Validado"
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr "O item da LDM foi validado"
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr "Obtém herdados"
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr "Este item da LDM é herdado por LDMs para peças variáveis"
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr "Permitir variações"
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr "Itens de estoque para as peças das variantes podem ser usados para este item LDM"
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr "Quantidade deve ser valor inteiro para peças rastreáveis"
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr "Sub peça deve ser especificada"
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr "Substituir Item da LDM"
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr "A peça de substituição não pode ser a mesma que a peça mestre"
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr "Item LDM Parental"
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr "Substituir peça"
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr "Parte 1"
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr "Parte 2"
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr "Selecionar Peça Relacionada"
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr "Relacionamento da peça não pode ser criada com ela mesma"
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr "Relação duplicada já existe"
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr "Moeda de compra deste item de estoque"
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr "Nenhuma parte selecionada"
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr "Selecionar categoria"
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr "Peça Original"
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr "Selecione a peça original para duplicar"
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr "Copiar imagem"
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr "Copiar imagem da peça original"
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr "Copiar LDM"
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr "Copiar lista de materiais da peça original"
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr "Copiar Parâmetros"
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr "Copiar dados do parâmetro da peça original"
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr "Quantidade Inicial de Estoque"
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr "Especificar a quantidade inicial de estoque para a peça. Se for zero, nenhum estoque é adicionado."
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr "Local Inicial do Estoque"
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr "Especifique o local do estoque inicial para esta Peça"
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr "Selecione o fornecedor (ou deixe em branco para pular)"
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr "Selecione fabricante (ou deixe em branco para pular)"
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr "Número de Peça do Fabricante"
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr "A empresa selecionada não é um fornecedor válido"
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr "A empresa selecionada não é um fabricante válido"
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr "A peça do fabricante que corresponde a essa MPN já existe"
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr "A peça do fornecedor que corresponde a essa SKU já existe"
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr "Peça duplicada"
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr "Copiar dados iniciais de outra peça"
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr "Estoque inicial"
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr "Criar peça com a quantidade inicial de estoque"
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr "Informações do Fornecedor"
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr "Adicionar informação inicial de fornecedor para esta peça"
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr "Copiar Parâmetros da Categoria"
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr "Copiar modelos de parâmetros a partir de categoria de peça selecionada"
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr "Limitar o relatório de balanço a uma determinada peça e quaisquer peças variantes"
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr "Limitar o relatório de balanço a uma determinada categoria, e qualquer peças filhas"
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr "Limitar o relatório de balanço a um determinado local de estoque, e qualquer local filho"
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr "Excluir Estoque externo"
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr "Excluir itens de estoque em locais externos"
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr "Gerar relatório"
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr "Gerar arquivo de relatório contendo dados de estoque calculados"
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr "Atualizar Peças"
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr "Atualizar peças especificadas com dados de estoque calculados"
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr "Função de Balanço de Estoque não está ativada"
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr "Atualizar"
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr "Atualizar preços desta peça"
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr "Selecionar peça para copiar a LDM"
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr "Remover Dado Existente"
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr "Remova itens LDM existentes antes de copiar"
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr "Incluir Herdados"
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr "Incluir itens LDM que são herdados de peças modelo"
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr "Pular Linhas inválidas"
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr "Habilitar esta opção para pular linhas inválidas"
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr "Copiar Peças Substitutas"
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr "Copiar peças de substitutas quando duplicar itens de LDM"
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr "Limpar LDM Existente"
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr "Apagar itens LDM existentes antes de carregar"
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr "Nenhuma coluna de peça especificada"
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr "Múltiplas peças correspondentes encontradas"
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr "Nenhuma peça correspondente encontrada"
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr "Peça não está designada como componente"
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr "Quantidade não foi fornecida"
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr "Quantidade Inválida"
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr "Pelo menos um item LDM é necessário"
 
@@ -7062,8 +7112,8 @@ msgstr "Nenhuma imagem correspondente encontrada"
 msgid "Hide Part Details"
 msgstr "Esconder Detalhes da Peça"
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr "Preço do fornecedor"
 
@@ -7078,8 +7128,8 @@ msgstr "Custo unitário"
 msgid "No supplier pricing available"
 msgstr "Nenhuma informação dos preços do fornecedor disponível"
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr "Preço LDM"
 
@@ -7147,7 +7197,20 @@ msgstr "Resumo de Preços"
 msgid "Refresh Part Pricing"
 msgstr "Atualizar Preço da Peça"
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr "Editar"
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7155,65 +7218,73 @@ msgstr "Atualizar Preço da Peça"
 msgid "Last Updated"
 msgstr "Última atualização"
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr "Categoria de preço"
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr "Mínimo"
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr "Máximo"
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr "Preço Interno"
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr "Histórico de Compras"
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr "Preço Variável"
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr "Preços Gerais"
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr "Histórico de vendas"
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr "Dados de preço de venda não estão disponíveis para esta peça"
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr "Dados do intervalo de preços não estão disponíveis para esta peça."
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr "Ir para visão geral"
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr "Adicionar intervalo de preço interno"
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr "Preço de Venda"
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr "Adicionar intervalo de preço de venda"
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9325,7 +9396,7 @@ msgid "Project Codes"
 msgstr "Códigos de Projeto"
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr "Novo Código de Projeto"
 
@@ -9366,14 +9437,6 @@ msgstr "Editar Configurações de Usuário"
 msgid "Rate"
 msgstr "Taxa"
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr "Editar"
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9397,68 +9460,73 @@ msgstr "Nova Unidade Personalizada"
 msgid "No project codes found"
 msgstr "Nenhum código de projetos encontrado"
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr "grupo"
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr "Editar Código do Projeto"
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr "Excluir Código do Projeto"
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr "Nenhum modelo de parâmetro de categoria encontrado"
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr "Editar Modelo"
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr "Excluir Modelo"
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr "Editar Parâmetros dos Modelos de Categoria"
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr "Excluir Parâmetros dos Modelos de Categoria"
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr "Criar Modelo de Parâmetro de Categoria"
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr "Criar Modelo de Parâmetro de Peça"
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10801,10 +10869,6 @@ msgstr "Progresso"
 msgid "No user information"
 msgstr "Sem informações de usuário"
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr "grupo"
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/pt_br/LC_MESSAGES/django.po b/InvenTree/locale/pt_br/LC_MESSAGES/django.po
index 472ee71850..6e93c142fb 100644
--- a/InvenTree/locale/pt_br/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pt_br/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
+"POT-Creation-Date: 2023-11-21 13:44+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"
@@ -58,7 +58,7 @@ msgstr ""
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
 #: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -265,7 +265,7 @@ msgstr ""
 msgid "Select file to attach"
 msgstr ""
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
 #: part/admin.py:39 part/models.py:836
@@ -296,10 +296,10 @@ msgstr ""
 msgid "File comment"
 msgstr ""
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -343,16 +343,16 @@ msgstr ""
 msgid "Invalid choice"
 msgstr ""
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -364,13 +364,13 @@ msgid "Name"
 msgstr ""
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -378,8 +378,8 @@ msgstr ""
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -445,12 +445,12 @@ msgstr ""
 msgid "An error has been logged by the server."
 msgstr ""
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr ""
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -664,7 +664,7 @@ msgstr ""
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr ""
 
@@ -920,14 +920,14 @@ msgstr ""
 msgid "Build must be cancelled before it can be deleted"
 msgstr ""
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr ""
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -996,7 +996,7 @@ msgstr ""
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1026,11 +1026,11 @@ msgstr ""
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1171,12 +1171,13 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1208,7 +1209,7 @@ msgstr ""
 msgid "Priority of this build order"
 msgstr ""
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1246,7 +1247,7 @@ msgstr ""
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr ""
@@ -1261,10 +1262,10 @@ msgstr ""
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1428,7 +1429,7 @@ msgid "A list of build outputs must be provided"
 msgstr ""
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2035,1365 +2036,1369 @@ msgstr ""
 msgid "Select {name} file to upload"
 msgstr ""
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr ""
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr ""
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr ""
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr ""
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr ""
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr ""
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr ""
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr ""
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr ""
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr ""
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr ""
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr ""
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr ""
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr ""
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr ""
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr ""
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr ""
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr ""
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr ""
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr ""
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr ""
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr ""
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr ""
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr ""
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr ""
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr ""
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr ""
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr ""
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr ""
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr ""
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr ""
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr ""
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr ""
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr ""
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr ""
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr ""
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr ""
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr ""
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr ""
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr ""
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr ""
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr ""
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr ""
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr ""
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr ""
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr ""
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr ""
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr ""
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr ""
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr ""
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr ""
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr ""
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr ""
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr ""
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr ""
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr ""
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr ""
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr ""
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr ""
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr ""
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr ""
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr ""
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr ""
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr ""
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr ""
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr ""
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr ""
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr ""
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr ""
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr ""
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr ""
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr ""
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr ""
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr ""
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr ""
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr ""
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr ""
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr ""
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr ""
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr ""
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr ""
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr ""
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr ""
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr ""
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr ""
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr ""
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr ""
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr ""
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr ""
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr ""
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr ""
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr ""
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr ""
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr ""
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr ""
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr ""
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr ""
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr ""
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr ""
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr ""
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr ""
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr ""
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr ""
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr ""
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr ""
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr ""
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr ""
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr ""
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr ""
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr ""
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr ""
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr ""
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr ""
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr ""
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr ""
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr ""
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr ""
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr ""
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr ""
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr ""
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr ""
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr ""
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr ""
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr ""
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr ""
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr ""
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr ""
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr ""
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr ""
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr ""
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr ""
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr ""
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr ""
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr ""
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr ""
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr ""
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr ""
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr ""
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr ""
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr ""
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr ""
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr ""
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr ""
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr ""
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr ""
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr ""
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr ""
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr ""
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr ""
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr ""
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr ""
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr ""
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr ""
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr ""
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr ""
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr ""
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr ""
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr ""
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr ""
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr ""
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr ""
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr ""
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr ""
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr ""
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr ""
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr ""
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr ""
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr ""
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr ""
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr ""
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr ""
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr ""
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr ""
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr ""
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr ""
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr ""
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr ""
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr ""
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr ""
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr ""
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr ""
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr ""
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr ""
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr ""
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr ""
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr ""
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr ""
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr ""
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr ""
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr ""
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr ""
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr ""
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr ""
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr ""
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr ""
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr ""
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr ""
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr ""
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr ""
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr ""
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr ""
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr ""
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr ""
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr ""
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr ""
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr ""
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr ""
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr ""
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr ""
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr ""
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr ""
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr ""
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr ""
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr ""
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr ""
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr ""
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr ""
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr ""
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr ""
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr ""
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr ""
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr ""
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr ""
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr ""
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr ""
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr ""
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr ""
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr ""
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr ""
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr ""
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr ""
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr ""
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr ""
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr ""
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr ""
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr ""
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr ""
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr ""
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr ""
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr ""
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr ""
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr ""
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr ""
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr ""
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr ""
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr ""
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr ""
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr ""
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr ""
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr ""
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr ""
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr ""
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr ""
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr ""
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr ""
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr ""
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr ""
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr ""
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr ""
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr ""
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr ""
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr ""
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr ""
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3401,23 +3406,23 @@ msgstr ""
 msgid "Price"
 msgstr ""
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr ""
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr ""
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr ""
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3426,101 +3431,101 @@ msgstr ""
 msgid "Active"
 msgstr ""
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr ""
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr ""
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr ""
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr ""
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr ""
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr ""
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr ""
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr ""
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr ""
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr ""
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr ""
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr ""
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr ""
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr ""
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr ""
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr ""
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr ""
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr ""
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr ""
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr ""
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr ""
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr ""
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr ""
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3530,31 +3535,31 @@ msgstr ""
 msgid "Image"
 msgstr ""
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr ""
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3809,7 +3814,7 @@ msgstr ""
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3824,7 +3829,7 @@ msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3870,7 +3875,7 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:40 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3896,7 +3901,7 @@ msgstr ""
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3914,7 +3919,7 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3922,7 +3927,7 @@ msgstr ""
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -3939,7 +3944,7 @@ msgid "Supplier part description"
 msgstr ""
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4786,7 +4791,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr ""
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr ""
 
@@ -5481,12 +5486,12 @@ msgstr ""
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr ""
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr ""
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr ""
@@ -5559,11 +5564,13 @@ msgstr ""
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5580,7 +5587,7 @@ msgstr ""
 msgid "Category Path"
 msgstr ""
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5603,16 +5610,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr ""
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr ""
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr ""
@@ -5663,7 +5672,7 @@ msgstr ""
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr ""
@@ -5697,7 +5706,7 @@ msgid "Default keywords for parts in this category"
 msgstr ""
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr ""
 
@@ -5744,7 +5753,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr ""
 
@@ -5768,10 +5777,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr ""
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5879,151 +5888,159 @@ msgstr ""
 msgid "Sell multiple"
 msgstr ""
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6031,567 +6048,596 @@ msgstr ""
 msgid "Date"
 msgstr ""
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr ""
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr ""
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr ""
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr ""
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr ""
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr ""
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr ""
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr ""
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr ""
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr ""
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr ""
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr ""
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr ""
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr ""
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr ""
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr ""
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr ""
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr ""
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr ""
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr ""
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr ""
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr ""
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr ""
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr ""
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr ""
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr ""
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr ""
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr ""
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr ""
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr ""
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr ""
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr ""
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr ""
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr ""
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr ""
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr ""
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr ""
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr ""
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr ""
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr ""
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr ""
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr ""
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr ""
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr ""
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr ""
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr ""
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr ""
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7065,8 +7111,8 @@ msgstr ""
 msgid "Hide Part Details"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr ""
 
@@ -7081,8 +7127,8 @@ msgstr ""
 msgid "No supplier pricing available"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7150,7 +7196,20 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7158,65 +7217,73 @@ msgstr ""
 msgid "Last Updated"
 msgstr ""
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr ""
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr ""
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9328,7 +9395,7 @@ msgid "Project Codes"
 msgstr ""
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr ""
 
@@ -9369,14 +9436,6 @@ msgstr ""
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr ""
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9400,68 +9459,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10804,10 +10868,6 @@ msgstr ""
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index c6ace1b5b2..eca1dc0da6 100644
--- a/InvenTree/locale/ru/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ru/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Russian\n"
 "Language: ru_RU\n"
@@ -56,8 +56,8 @@ msgstr "Введите дату"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr "Вложения"
 msgid "Select file to attach"
 msgstr "Выберите файл для вложения"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr "Комментарий"
 msgid "File comment"
 msgstr "Комментарий к файлу"
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr "Повторяющиеся имена не могут существов
 msgid "Invalid choice"
 msgstr "Неверный выбор"
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr "Название"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr "Название"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr "Ошибка сервера"
 msgid "An error has been logged by the server."
 msgstr "Сервер зарегистрировал ошибку."
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "Должно быть действительным номером"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -661,7 +661,7 @@ msgstr "Китайский (Упрощенный)"
 msgid "Chinese (Traditional)"
 msgstr "Китайский (Традиционный)"
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr "Проверка фонового работника не удалась"
 
@@ -917,14 +917,14 @@ msgstr "О программе InvenTree"
 msgid "Build must be cancelled before it can be deleted"
 msgstr "Сборка должна быть отменена перед удалением"
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr "Расходники"
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -993,7 +993,7 @@ msgstr "Ссылка на заказ"
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1023,11 @@ msgstr "ПорядокСборки, которому выделяется эта
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1168,13 @@ msgid "User who issued this build order"
 msgstr "Пользователь, выпустивший этот заказ на сборку"
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1206,7 @@ msgstr "Приоритет сборки"
 msgid "Priority of this build order"
 msgstr "Приоритет этого порядка сборки заказа"
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1244,7 @@ msgstr "Вывод сборки не совпадает с порядком сб
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr "Количество должно быть больше нуля"
@@ -1258,10 +1259,10 @@ msgstr "Построить объект"
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1426,7 @@ msgid "A list of build outputs must be provided"
 msgstr "Необходимо представить список результатов сборки"
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2032,1365 +2033,1369 @@ msgstr ""
 msgid "Select {name} file to upload"
 msgstr "Выберите {name} файл для загрузки"
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr "Обновлено"
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr ""
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr ""
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr ""
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr ""
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr ""
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr ""
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr ""
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr ""
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr ""
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr ""
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr ""
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr ""
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr "Требуется перезапуск"
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr ""
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr ""
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr "Название инстанса"
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr ""
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr ""
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr ""
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr "Название компании"
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr "Внутреннее название компании"
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr "Базовая ссылка"
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr "Базовая ссылка для экземпляра сервера"
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr "Валюта по умолчанию"
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr ""
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr "дней"
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr "Скачать по ссылке"
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr "Разрешить загрузку удаленных изображений и файлов по внешнему URL"
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr "Ограничение размера загрузки"
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr "Максимально допустимый размер загрузки для удалённого изображения"
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr "User-Agent, используемый для загрузки из URL"
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr "Позволяет переопределить user-Agent, используемый для загрузки изображений и файлов с внешнего URL (оставьте пустым по умолчанию)"
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr "Требуется подтверждение"
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr "Требовать явное подтверждение пользователя для определенного действия."
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr "Глубина дерева"
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr "Глубина дерева по умолчанию для просмотра дерева. Глубокие уровни загружены по мере необходимости."
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr "Интервал проверки обновлений"
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr "Как часто проверять наличие обновлений (установите ноль чтобы выключить)"
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr "Автоматическое резервное копирование"
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr "Включить автоматическое резервное копирование базы данных и медиа-файлов"
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr "Интервал автосохранения"
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr "Укажите количество дней между событиями автоматического резервного копирования"
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr "Интервал удаления задачи"
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr "Результаты фоновых задач будут удалены после указанного количества дней"
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr "Интервал удаления журнала ошибок"
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr "Журналы ошибок будут удалены после указанного количества дней"
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr "Интервал удаления уведомления"
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr "Уведомления пользователя будут удалены после указанного количества дней"
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr "Поддержка штрих-кодов"
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr "Задержка сканирования штрих-кода"
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr "Время задержки обработки штрих-кода"
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr "Поддержка веб-камер штрих-кодов"
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr "Разрешить сканирование штрих-кода через веб-камеру в браузере"
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr "Ревизия деталей"
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr ""
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr ""
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr ""
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr "Разрешить повторяющиеся IPN"
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr ""
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr "Разрешить редактирование IPN"
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr ""
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr ""
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr ""
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr ""
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr ""
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr ""
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr "Шаблон"
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr "По умолчанию детали являются шаблонами"
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr "Сборка"
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr ""
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr "Компонент"
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr ""
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr "Можно купить"
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr "По умолчанию детали являются отслеживаемыми"
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr "Можно продавать"
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr ""
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr "Отслеживание"
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr "По умолчанию детали являются отслеживаемыми"
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr "Виртуальная"
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr ""
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr ""
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr ""
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr "Показывать связанные детали"
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr ""
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr ""
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr ""
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr "Исходные данные о поставщике"
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr ""
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr ""
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr ""
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr ""
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr ""
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr ""
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr ""
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr ""
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr "Использовать расценки из ручного ввода данных о запасах для расчета цен"
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr ""
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr ""
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr ""
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr ""
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr ""
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr ""
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr ""
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr ""
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr ""
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr ""
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr ""
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr ""
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr ""
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr ""
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr ""
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr ""
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr ""
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr "Режим отладки"
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr ""
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr ""
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr ""
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr ""
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr ""
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr ""
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr ""
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr ""
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr ""
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr ""
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr ""
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr ""
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr ""
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr ""
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr ""
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr ""
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr ""
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr ""
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr ""
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr ""
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr ""
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr ""
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr ""
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr ""
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr ""
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr ""
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr ""
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr ""
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr "Включить возврат заказов"
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr ""
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr ""
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr ""
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr ""
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr ""
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr ""
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr ""
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr ""
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr ""
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr "Редактировать завершенные заказы на покупку"
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr ""
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr ""
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr ""
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr ""
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr ""
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr ""
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr ""
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr ""
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr "Необходимо указать EMail"
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr ""
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr ""
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr ""
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr ""
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr ""
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr ""
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr ""
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr ""
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr ""
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr ""
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr ""
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr "Пользователи должны использовать многофакторную безопасность."
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr "Проверять плагины при запуске"
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr ""
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr ""
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr ""
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr ""
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr ""
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr ""
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr ""
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr ""
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr ""
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr ""
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr ""
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr ""
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr ""
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr ""
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr ""
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr ""
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr ""
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr "Показывать детали, на которые включены уведомления"
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr "Показывать детали, на которые включены уведомления, на главной странице"
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr "Показывать категории, на которые включены уведомления"
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr "Показывать категории, на которые включены уведомления, на главной странице"
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr "Показывать последние детали"
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr "Показывать последние детали на главной странице"
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr "Показывать непроверенные BOMы"
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr "Показывать BOMы, ожидающие проверки, на главной странице"
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr "Показывать изменившиеся складские запасы"
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr "Показывать единицы хранения с недавно изменившимися складскими запасами на главной странице"
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr "Показывать низкие складские запасы"
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr "Показывать единицы хранения с низкими складскими запасами на главной странице"
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr "Показывать закончившиеся детали"
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr "Показывать закончившиеся на складе единицы хранения на главной странице"
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr "Показывать требуемые детали"
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr "Показывать требуемые для сборки единицы хранения на главной странице"
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr "Показывать просрочку"
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr "Показывать единицы хранения с истёкшим сроком годности на главной странице"
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr "Показывать залежалые"
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr "Показывать залежалые единицы хранения на главной странице"
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr "Показывать незавершённые сборки"
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr "Показывать незавершённые сборки на главной странице"
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr "Показывать просроченные сборки"
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr "Показывать просроченные сборки на главной странице"
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr ""
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr ""
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr ""
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr ""
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr ""
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr ""
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr ""
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr ""
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr ""
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr ""
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr ""
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr ""
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr ""
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr ""
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr ""
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr ""
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr ""
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr ""
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr ""
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr ""
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr ""
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr ""
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr ""
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr ""
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr ""
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr ""
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr ""
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr ""
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr ""
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr ""
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr "Искать заказы на сборку"
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr "Отображать заказы на сборку в окне предварительного просмотра поиска"
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr ""
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr ""
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr ""
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr ""
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr "Поиск заказов на продажу"
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr ""
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr ""
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr ""
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr "Поиск возвращенных заказов"
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr ""
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr ""
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr ""
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr ""
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr ""
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr ""
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr ""
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr ""
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr ""
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr ""
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr ""
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr "Планирование деталей"
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr ""
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr "Запасы деталей"
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr ""
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr ""
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3398,23 +3403,23 @@ msgstr ""
 msgid "Price"
 msgstr "Цена"
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr ""
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr ""
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr ""
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3423,101 +3428,101 @@ msgstr ""
 msgid "Active"
 msgstr "Активный"
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr ""
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr ""
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr ""
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr ""
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr ""
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr ""
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr ""
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr ""
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr ""
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr ""
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr ""
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr ""
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr ""
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr ""
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr ""
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr ""
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr ""
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr ""
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr ""
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr ""
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr ""
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr ""
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr ""
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3527,31 +3532,31 @@ msgstr ""
 msgid "Image"
 msgstr "Изображение"
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr ""
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3806,7 +3811,7 @@ msgstr "Выберите деталь"
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3821,7 +3826,7 @@ msgid "Select manufacturer"
 msgstr "Выберите производителя"
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3867,7 +3872,7 @@ msgid "Parameter value"
 msgstr "Значение параметра"
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3893,7 +3898,7 @@ msgstr ""
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3911,7 +3916,7 @@ msgid "Select supplier"
 msgstr "Выберите поставщика"
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3919,7 +3924,7 @@ msgstr "Выберите поставщика"
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr "Код поставщика"
 
@@ -3936,7 +3941,7 @@ msgid "Supplier part description"
 msgstr ""
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4783,7 +4788,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr ""
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr "Цена продажи"
 
@@ -5478,38 +5483,42 @@ msgstr ""
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr ""
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr "Артикул"
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr "Наименование детали"
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr "Описание детали"
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr ""
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr "Версия"
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr "Ключевые слова"
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr "Код категории"
@@ -5556,11 +5565,13 @@ msgstr "Используется в"
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5577,7 +5588,7 @@ msgstr ""
 msgid "Category Path"
 msgstr "Путь к категории"
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5600,16 +5611,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr "IPN"
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr ""
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr ""
@@ -5660,7 +5673,7 @@ msgstr "Доступный запас"
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr "Категория детали"
@@ -5694,7 +5707,7 @@ msgid "Default keywords for parts in this category"
 msgstr "Ключевые слова по умолчанию для деталей этой категории"
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr "Иконка"
 
@@ -5741,7 +5754,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr "Наименование детали"
 
@@ -5765,10 +5778,10 @@ msgstr "Описание детали (необязательно)"
 msgid "Part keywords to improve visibility in search results"
 msgstr "Ключевые слова для улучшения видимости в результатах поиска"
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5876,151 +5889,159 @@ msgstr ""
 msgid "Sell multiple"
 msgstr ""
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6028,567 +6049,596 @@ msgstr ""
 msgid "Date"
 msgstr ""
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr ""
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr ""
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr ""
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr "Тестовые шаблоны могут быть созданы только для отслеживаемых деталей"
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr "Название теста"
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr "Введите имя для теста"
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr ""
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr "Введите описание для этого теста"
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr ""
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr ""
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr ""
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr ""
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr ""
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr "Родительская деталь"
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr "Шаблон параметра"
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr ""
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr ""
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr ""
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr "Артикул или наименование детали"
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr ""
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr "Значение IPN"
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr ""
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr "BOM Компонент"
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr "Выберите родительскую деталь"
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr ""
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr "Выбрать деталь для использования в BOM"
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr ""
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr "Эта позиция - расходник. (она не отслеживается в заказах на сборку)"
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr ""
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr ""
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr "Разрешить разновидности"
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr ""
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr "Для отслеживаемых деталей количество должно быть целым числом"
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr ""
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr "Часть 1"
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr "Часть 2"
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr "Выберите связанную часть"
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr "Валюта покупки этой единицы хранения"
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr "Не выбран ни один элемент"
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr "Выберите категорию"
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr ""
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr ""
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr "Выберите поставщика (или оставьте поле пустым, чтобы пропустить)"
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr "Выберите поставщика (или оставьте поле пустым, чтобы пропустить)"
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr "Код производителя"
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr "Дублировать деталь"
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr "Копировать параметры категории"
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr "Копировать шаблоны параметров из выбранной категории деталей"
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr ""
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr ""
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr ""
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr ""
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr ""
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr "Подходящая деталь не найдена"
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr ""
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr "Некорректное количество"
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7062,8 +7112,8 @@ msgstr "Подходящие изображения не найдены"
 msgid "Hide Part Details"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr ""
 
@@ -7078,8 +7128,8 @@ msgstr ""
 msgid "No supplier pricing available"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7147,7 +7197,20 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7155,65 +7218,73 @@ msgstr ""
 msgid "Last Updated"
 msgstr ""
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr ""
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr ""
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9325,7 +9396,7 @@ msgid "Project Codes"
 msgstr ""
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr ""
 
@@ -9366,14 +9437,6 @@ msgstr "Изменить настройки пользователя"
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr ""
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9397,68 +9460,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr "Шаблоны параметров категории не найдены"
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr "Редактировать шаблон"
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr "Удалить шаблон"
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10801,10 +10869,6 @@ msgstr ""
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/sl/LC_MESSAGES/django.po b/InvenTree/locale/sl/LC_MESSAGES/django.po
index 1ccc701d30..ce8c201158 100644
--- a/InvenTree/locale/sl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/sl/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Slovenian\n"
 "Language: sl_SI\n"
@@ -56,8 +56,8 @@ msgstr "Vnesi datum"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr "Priloga"
 msgid "Select file to attach"
 msgstr "Izberite prilogo"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr "Komentar"
 msgid "File comment"
 msgstr "Komentar datoteke"
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr ""
 msgid "Invalid choice"
 msgstr "Nedovoljena izbira"
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr "Ime"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr "Ime"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr "Napaka strežnika"
 msgid "An error has been logged by the server."
 msgstr "Zaznana napaka na strežniku."
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "Mora biti veljavna številka"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -661,7 +661,7 @@ msgstr ""
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr "Nadzor dela v ozadju neuspel"
 
@@ -917,14 +917,14 @@ msgstr "O InvenTree"
 msgid "Build must be cancelled before it can be deleted"
 msgstr "Izgradnja mora biti najprej preklicana, nato je lahko izbrisana"
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr ""
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -993,7 +993,7 @@ msgstr "Referenca naloga izgradnje"
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1023,11 @@ msgstr "Nalog izgradnje na katerega se ta izgradnaj nanaša"
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1168,13 @@ msgid "User who issued this build order"
 msgstr "Uporabnik, ki je izdal nalog za izgradnjo"
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1206,7 @@ msgstr ""
 msgid "Priority of this build order"
 msgstr ""
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1244,7 @@ msgstr "Izgradnja se ne ujema s nalogom izdelave"
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr ""
@@ -1258,10 +1259,10 @@ msgstr ""
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1426,7 @@ msgid "A list of build outputs must be provided"
 msgstr ""
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2032,1365 +2033,1369 @@ msgstr ""
 msgid "Select {name} file to upload"
 msgstr ""
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr ""
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr ""
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr ""
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr ""
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr ""
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr ""
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr ""
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr ""
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr ""
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr ""
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr ""
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr ""
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr ""
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr ""
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr ""
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr ""
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr ""
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr ""
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr ""
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr ""
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr ""
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr ""
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr ""
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr ""
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr ""
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr ""
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr ""
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr ""
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr ""
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr ""
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr ""
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr ""
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr ""
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr ""
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr ""
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr ""
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr ""
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr ""
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr ""
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr ""
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr ""
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr ""
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr ""
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr ""
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr ""
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr ""
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr ""
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr ""
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr ""
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr ""
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr ""
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr ""
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr ""
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr ""
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr ""
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr ""
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr ""
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr ""
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr ""
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr ""
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr ""
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr ""
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr ""
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr ""
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr ""
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr ""
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr ""
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr ""
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr ""
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr ""
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr ""
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr ""
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr ""
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr ""
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr ""
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr ""
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr ""
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr ""
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr ""
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr ""
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr ""
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr ""
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr ""
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr ""
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr ""
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr ""
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr ""
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr ""
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr ""
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr ""
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr ""
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr ""
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr ""
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr ""
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr ""
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr ""
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr ""
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr ""
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr ""
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr ""
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr ""
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr ""
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr ""
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr ""
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr ""
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr ""
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr ""
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr ""
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr ""
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr ""
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr ""
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr ""
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr ""
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr ""
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr ""
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr ""
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr ""
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr ""
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr ""
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr ""
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr ""
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr ""
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr ""
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr ""
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr ""
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr ""
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr ""
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr ""
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr ""
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr ""
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr ""
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr ""
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr ""
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr ""
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr ""
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr ""
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr ""
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr ""
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr ""
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr ""
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr ""
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr ""
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr ""
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr ""
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr ""
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr ""
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr ""
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr ""
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr ""
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr ""
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr ""
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr ""
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr ""
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr ""
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr ""
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr ""
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr ""
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr ""
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr ""
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr ""
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr ""
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr ""
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr ""
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr ""
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr ""
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr ""
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr ""
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr ""
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr ""
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr ""
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr ""
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr ""
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr ""
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr ""
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr ""
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr ""
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr ""
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr ""
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr ""
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr ""
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr ""
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr ""
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr ""
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr ""
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr ""
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr ""
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr ""
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr ""
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr ""
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr ""
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr ""
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr ""
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr ""
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr ""
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr ""
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr ""
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr ""
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr ""
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr ""
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr ""
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr ""
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr ""
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr ""
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr ""
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr ""
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr ""
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr ""
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr ""
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr ""
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr ""
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr ""
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr ""
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr ""
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr ""
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr ""
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr ""
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr ""
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr ""
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr ""
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr ""
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr ""
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr ""
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr ""
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr ""
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr ""
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr ""
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr ""
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr ""
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr ""
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr ""
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr ""
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr ""
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr ""
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr ""
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr ""
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr ""
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr ""
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr ""
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr ""
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr ""
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr ""
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr ""
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr ""
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr ""
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr ""
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr ""
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr ""
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr ""
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr ""
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr ""
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr ""
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr ""
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr ""
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr ""
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr ""
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr ""
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr ""
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr ""
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr ""
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr ""
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr ""
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr ""
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr ""
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3398,23 +3403,23 @@ msgstr ""
 msgid "Price"
 msgstr ""
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr ""
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr ""
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr ""
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3423,101 +3428,101 @@ msgstr ""
 msgid "Active"
 msgstr ""
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr ""
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr ""
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr ""
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr ""
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr ""
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr ""
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr ""
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr ""
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr ""
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr ""
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr ""
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr ""
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr ""
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr ""
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr ""
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr ""
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr ""
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr ""
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr ""
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr ""
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr ""
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr ""
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr ""
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3527,31 +3532,31 @@ msgstr ""
 msgid "Image"
 msgstr ""
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr ""
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3806,7 +3811,7 @@ msgstr ""
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3821,7 +3826,7 @@ msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3867,7 +3872,7 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3893,7 +3898,7 @@ msgstr ""
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3911,7 +3916,7 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3919,7 +3924,7 @@ msgstr ""
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -3936,7 +3941,7 @@ msgid "Supplier part description"
 msgstr ""
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4783,7 +4788,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr ""
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr ""
 
@@ -5478,38 +5483,42 @@ msgstr ""
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr ""
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr ""
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr ""
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr ""
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr ""
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr ""
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr ""
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr ""
@@ -5556,11 +5565,13 @@ msgstr ""
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5577,7 +5588,7 @@ msgstr ""
 msgid "Category Path"
 msgstr ""
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5600,16 +5611,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr ""
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr ""
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr ""
@@ -5660,7 +5673,7 @@ msgstr ""
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr ""
@@ -5694,7 +5707,7 @@ msgid "Default keywords for parts in this category"
 msgstr ""
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr ""
 
@@ -5741,7 +5754,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr ""
 
@@ -5765,10 +5778,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr ""
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5876,151 +5889,159 @@ msgstr ""
 msgid "Sell multiple"
 msgstr ""
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6028,567 +6049,596 @@ msgstr ""
 msgid "Date"
 msgstr ""
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr ""
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr ""
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr ""
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr ""
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr ""
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr ""
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr ""
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr ""
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr ""
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr ""
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr ""
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr ""
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr ""
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr ""
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr ""
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr ""
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr ""
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr ""
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr ""
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr ""
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr ""
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr ""
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr ""
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr ""
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr ""
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr ""
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr ""
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr ""
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr ""
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr ""
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr ""
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr ""
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr ""
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr ""
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr ""
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr ""
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr ""
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr ""
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr ""
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr ""
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr ""
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr ""
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr ""
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr ""
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr ""
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr ""
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr ""
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7062,8 +7112,8 @@ msgstr ""
 msgid "Hide Part Details"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr ""
 
@@ -7078,8 +7128,8 @@ msgstr ""
 msgid "No supplier pricing available"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7147,7 +7197,20 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7155,65 +7218,73 @@ msgstr ""
 msgid "Last Updated"
 msgstr ""
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr ""
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr ""
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9325,7 +9396,7 @@ msgid "Project Codes"
 msgstr ""
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr ""
 
@@ -9366,14 +9437,6 @@ msgstr ""
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr ""
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9397,68 +9460,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10801,10 +10869,6 @@ msgstr ""
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po
index 8fc19c59a0..84d7d4e47b 100644
--- a/InvenTree/locale/sv/LC_MESSAGES/django.po
+++ b/InvenTree/locale/sv/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Swedish\n"
 "Language: sv_SE\n"
@@ -56,8 +56,8 @@ msgstr "Ange datum"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr "Bilaga"
 msgid "Select file to attach"
 msgstr "Välj fil att bifoga"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr "Kommentar"
 msgid "File comment"
 msgstr "Fil kommentar"
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr ""
 msgid "Invalid choice"
 msgstr "Ogiltigt val"
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr "Namn"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr "Namn"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr "Serverfel"
 msgid "An error has been logged by the server."
 msgstr "Ett fel har loggats av servern."
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "Måste vara ett giltigt nummer"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -661,7 +661,7 @@ msgstr "Kinesiska (Förenklad)"
 msgid "Chinese (Traditional)"
 msgstr "Kinesiska (Traditionell)"
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr "Kontroll av bakgrundsarbetare misslyckades"
 
@@ -917,14 +917,14 @@ msgstr "Om InvenTree"
 msgid "Build must be cancelled before it can be deleted"
 msgstr "Byggnationen måste avbrytas innan den kan tas bort"
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr ""
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -993,7 +993,7 @@ msgstr "Byggorderreferens"
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1023,11 @@ msgstr "Byggorder till vilken detta bygge är tilldelad"
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1168,13 @@ msgid "User who issued this build order"
 msgstr "Användare som utfärdade denna byggorder"
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1206,7 @@ msgstr ""
 msgid "Priority of this build order"
 msgstr ""
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1244,7 @@ msgstr "Byggutgång matchar inte bygg order"
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr ""
@@ -1258,10 +1259,10 @@ msgstr ""
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1426,7 @@ msgid "A list of build outputs must be provided"
 msgstr ""
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2032,1365 +2033,1369 @@ msgstr "{name.title()} Fil"
 msgid "Select {name} file to upload"
 msgstr ""
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr ""
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr ""
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr "Unik projektkod"
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr "Projektbeskrivning"
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr ""
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr ""
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr ""
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr ""
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr ""
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr ""
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr "Ingen grupp"
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr ""
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr ""
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr "Omstart krävs"
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr ""
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr "Serverinstans (Namn)"
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr ""
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr ""
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr ""
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr ""
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr "Företagsnamn"
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr "Internt företagsnamn"
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr "Bas-URL"
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr "Bas-URL för serverinstans"
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr "Standardvaluta"
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr ""
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr ""
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr "Ladda ned från URL"
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr "Tillåt nedladdning av bilder och filer från extern URL"
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr ""
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr ""
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr ""
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr ""
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr "Kräv bekräftelse"
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr "Kräv uttrycklig användarbekräftelse för vissa åtgärder."
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr ""
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr ""
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr ""
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr ""
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr ""
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr ""
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr ""
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr ""
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr ""
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr ""
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr "Stöd för streckkoder"
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr ""
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr ""
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr ""
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr ""
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr ""
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr ""
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr ""
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr ""
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr ""
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr ""
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr ""
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr ""
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr ""
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr ""
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr ""
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr ""
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr ""
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr ""
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr ""
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr ""
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr ""
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr ""
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr ""
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr ""
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr ""
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr ""
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr ""
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr ""
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr "Virtuell"
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr "Delar är virtuella som standard"
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr "Visa import i vyer"
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr "Visa importguiden i vissa delvyer"
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr "Visa relaterade delar"
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr "Visa relaterade delar för en del"
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr ""
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr ""
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr ""
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr ""
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr "Visningsformat för delnamn"
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr "Formatera för att visa artikelnamnet"
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr ""
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr ""
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr ""
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr ""
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr ""
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr ""
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr ""
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr ""
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr ""
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr ""
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr ""
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr ""
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr ""
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr "Interna priser"
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr ""
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr ""
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr ""
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr "Aktivera etikettutskrift"
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr "Aktivera etikettutskrift från webbgränssnittet"
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr "Etikettbild DPI"
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr ""
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr "Aktivera rapporter"
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr "Aktivera generering av rapporter"
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr "Debugläge"
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr ""
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr "Sidstorlek"
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr "Standard sidstorlek för PDF-rapporter"
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr "Aktivera testrapporter"
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr ""
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr ""
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr ""
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr ""
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr ""
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr ""
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr ""
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr ""
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr ""
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr ""
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr ""
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr ""
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr ""
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr ""
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr ""
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr ""
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr ""
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr ""
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr ""
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr ""
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr ""
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr ""
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr ""
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr ""
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr ""
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr ""
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr ""
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr ""
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr ""
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr ""
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr ""
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr ""
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr ""
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr ""
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr ""
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr ""
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr ""
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr ""
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr ""
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr ""
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr ""
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr ""
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr ""
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr ""
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr ""
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr ""
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr ""
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr ""
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr ""
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr ""
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr ""
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr "Tillåtna domäner"
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr ""
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr ""
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr ""
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr ""
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr ""
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr ""
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr ""
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr ""
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr ""
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr ""
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr ""
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr ""
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr ""
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr ""
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr ""
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr ""
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr "Aktivera projektkoder"
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr ""
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr ""
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr ""
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr ""
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr ""
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr ""
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr ""
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr ""
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr ""
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr ""
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr ""
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr ""
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr ""
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr ""
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr ""
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr ""
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr ""
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr ""
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr ""
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr ""
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr ""
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr ""
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr ""
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr ""
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr ""
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr ""
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr ""
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr ""
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr ""
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr ""
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr ""
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr ""
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr ""
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr ""
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr ""
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr ""
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr "Sök efter artiklar"
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr ""
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr "Sök efter leverantörsartikel"
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr ""
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr "Sök efter tillverkarartikel"
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr ""
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr ""
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr ""
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr ""
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr ""
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr ""
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr ""
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr ""
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr ""
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr ""
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr ""
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr ""
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr ""
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr ""
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr ""
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr ""
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr ""
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr ""
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr ""
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr ""
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr ""
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr ""
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr ""
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr ""
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr ""
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr ""
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr ""
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr ""
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr ""
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr ""
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr ""
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr ""
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr ""
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr ""
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr ""
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr ""
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr ""
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr ""
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr ""
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr ""
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3398,23 +3403,23 @@ msgstr ""
 msgid "Price"
 msgstr ""
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr ""
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr ""
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr ""
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3423,101 +3428,101 @@ msgstr ""
 msgid "Active"
 msgstr ""
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr ""
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr ""
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr ""
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr ""
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr ""
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr ""
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr ""
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr ""
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr ""
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr ""
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr ""
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr ""
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr ""
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr ""
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr ""
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr ""
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr ""
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr ""
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr ""
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr ""
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr ""
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr ""
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr ""
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3527,31 +3532,31 @@ msgstr ""
 msgid "Image"
 msgstr ""
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr ""
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3806,7 +3811,7 @@ msgstr ""
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3821,7 +3826,7 @@ msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3867,7 +3872,7 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3893,7 +3898,7 @@ msgstr ""
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3911,7 +3916,7 @@ msgid "Select supplier"
 msgstr "Välj leverantör"
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3919,7 +3924,7 @@ msgstr "Välj leverantör"
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -3936,7 +3941,7 @@ msgid "Supplier part description"
 msgstr ""
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4783,7 +4788,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr ""
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr ""
 
@@ -5478,38 +5483,42 @@ msgstr ""
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr ""
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr ""
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr ""
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr ""
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr ""
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr ""
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr "Nyckelord"
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr ""
@@ -5556,11 +5565,13 @@ msgstr ""
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5577,7 +5588,7 @@ msgstr ""
 msgid "Category Path"
 msgstr ""
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5600,16 +5611,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr ""
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr ""
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr ""
@@ -5660,7 +5673,7 @@ msgstr ""
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr ""
@@ -5694,7 +5707,7 @@ msgid "Default keywords for parts in this category"
 msgstr ""
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr "Ikon"
 
@@ -5741,7 +5754,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr ""
 
@@ -5765,10 +5778,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr ""
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5876,151 +5889,159 @@ msgstr ""
 msgid "Sell multiple"
 msgstr ""
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6028,567 +6049,596 @@ msgstr ""
 msgid "Date"
 msgstr ""
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr ""
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr ""
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr ""
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr ""
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr ""
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr ""
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr ""
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr ""
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr ""
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr ""
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr ""
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr ""
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr ""
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr ""
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr ""
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr ""
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr ""
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr ""
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr ""
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr ""
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr ""
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr ""
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr ""
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr ""
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr ""
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr ""
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr ""
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr ""
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr ""
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr ""
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr ""
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr ""
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr ""
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr ""
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr ""
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr "Välj kategori"
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr ""
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr ""
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr ""
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr ""
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr "Generera rapport"
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr ""
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr ""
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr ""
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr ""
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr ""
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr ""
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr ""
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7062,8 +7112,8 @@ msgstr ""
 msgid "Hide Part Details"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr ""
 
@@ -7078,8 +7128,8 @@ msgstr ""
 msgid "No supplier pricing available"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7147,7 +7197,20 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr "Redigera"
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7155,65 +7218,73 @@ msgstr ""
 msgid "Last Updated"
 msgstr "Senast uppdaterad"
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr ""
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr ""
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9325,7 +9396,7 @@ msgid "Project Codes"
 msgstr "Projektkoder"
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr "Ny projektkod"
 
@@ -9366,14 +9437,6 @@ msgstr ""
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr "Redigera"
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9397,68 +9460,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr "Redigera projektkod"
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr "Radera projektkod"
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10801,10 +10869,6 @@ msgstr ""
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po
index d92103cfcf..ce683e86a9 100644
--- a/InvenTree/locale/th/LC_MESSAGES/django.po
+++ b/InvenTree/locale/th/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:37\n"
 "Last-Translator: \n"
 "Language-Team: Thai\n"
 "Language: th_TH\n"
@@ -56,8 +56,8 @@ msgstr "ป้อนวันที่"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr "ไฟล์แนบ"
 msgid "Select file to attach"
 msgstr "เลือกไฟล์ที่ต้องการแนบ"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr "ความคิดเห็น"
 msgid "File comment"
 msgstr "ความเห็นของไฟล์"
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr ""
 msgid "Invalid choice"
 msgstr ""
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr "ชื่อ"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr "ชื่อ"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr "เกิดข้อผิดพลาดที่เซิร์ฟเ
 msgid "An error has been logged by the server."
 msgstr ""
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "ต้องเป็นตัวเลข"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -661,7 +661,7 @@ msgstr ""
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr ""
 
@@ -917,14 +917,14 @@ msgstr "เกี่ยวกับ Inventree"
 msgid "Build must be cancelled before it can be deleted"
 msgstr ""
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr ""
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -993,7 +993,7 @@ msgstr ""
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1023,11 @@ msgstr ""
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1168,13 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1206,7 @@ msgstr ""
 msgid "Priority of this build order"
 msgstr ""
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1244,7 @@ msgstr ""
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr ""
@@ -1258,10 +1259,10 @@ msgstr ""
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1426,7 @@ msgid "A list of build outputs must be provided"
 msgstr ""
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2032,1365 +2033,1369 @@ msgstr ""
 msgid "Select {name} file to upload"
 msgstr ""
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr ""
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr ""
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr ""
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr ""
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr ""
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr ""
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr ""
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr ""
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr ""
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr ""
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr ""
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr ""
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr ""
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr ""
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr ""
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr ""
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr ""
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr ""
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr ""
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr ""
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr ""
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr ""
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr ""
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr ""
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr ""
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr ""
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr ""
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr ""
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr ""
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr ""
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr ""
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr ""
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr ""
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr ""
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr ""
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr ""
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr ""
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr ""
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr ""
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr ""
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr ""
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr ""
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr ""
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr ""
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr ""
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr ""
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr ""
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr ""
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr ""
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr ""
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr ""
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr ""
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr ""
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr ""
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr ""
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr ""
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr ""
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr ""
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr ""
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr ""
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr ""
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr ""
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr ""
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr ""
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr ""
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr ""
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr ""
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr ""
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr ""
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr ""
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr ""
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr ""
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr ""
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr ""
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr ""
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr ""
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr ""
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr ""
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr ""
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr ""
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr ""
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr ""
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr ""
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr ""
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr ""
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr ""
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr ""
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr ""
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr ""
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr ""
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr ""
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr ""
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr ""
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr ""
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr ""
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr ""
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr ""
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr ""
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr ""
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr ""
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr ""
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr ""
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr ""
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr ""
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr ""
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr ""
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr ""
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr ""
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr ""
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr ""
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr ""
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr ""
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr ""
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr ""
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr ""
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr ""
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr ""
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr ""
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr ""
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr ""
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr ""
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr ""
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr ""
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr ""
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr ""
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr ""
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr ""
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr ""
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr ""
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr ""
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr ""
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr ""
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr ""
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr ""
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr ""
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr ""
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr ""
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr ""
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr ""
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr ""
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr ""
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr ""
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr ""
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr ""
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr ""
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr ""
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr ""
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr ""
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr ""
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr ""
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr ""
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr ""
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr ""
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr ""
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr ""
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr ""
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr ""
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr ""
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr ""
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr ""
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr ""
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr ""
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr ""
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr ""
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr ""
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr ""
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr ""
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr ""
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr ""
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr ""
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr ""
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr ""
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr ""
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr ""
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr ""
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr ""
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr ""
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr ""
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr ""
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr ""
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr ""
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr ""
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr ""
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr ""
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr ""
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr ""
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr ""
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr ""
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr ""
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr ""
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr ""
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr ""
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr ""
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr ""
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr ""
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr ""
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr ""
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr ""
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr ""
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr ""
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr ""
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr ""
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr ""
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr ""
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr ""
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr ""
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr ""
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr ""
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr ""
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr ""
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr ""
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr ""
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr ""
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr ""
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr ""
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr ""
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr ""
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr ""
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr ""
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr ""
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr ""
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr ""
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr ""
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr ""
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr ""
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr ""
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr ""
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr ""
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr ""
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr ""
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr ""
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr ""
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr ""
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr ""
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr ""
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr ""
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr ""
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr ""
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr ""
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr ""
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr ""
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr ""
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr ""
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr ""
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr ""
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr ""
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr ""
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr ""
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr ""
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr ""
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr ""
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr ""
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr ""
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr ""
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr ""
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr ""
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr ""
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr ""
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr ""
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr ""
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr ""
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr ""
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr ""
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3398,23 +3403,23 @@ msgstr ""
 msgid "Price"
 msgstr ""
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr ""
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr ""
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr ""
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3423,101 +3428,101 @@ msgstr ""
 msgid "Active"
 msgstr ""
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr ""
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr ""
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr ""
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr ""
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr ""
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr ""
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr ""
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr ""
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr ""
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr ""
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr ""
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr ""
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr ""
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr ""
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr ""
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr ""
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr ""
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr ""
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr ""
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr ""
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr ""
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr ""
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr ""
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3527,31 +3532,31 @@ msgstr ""
 msgid "Image"
 msgstr ""
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr ""
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3806,7 +3811,7 @@ msgstr ""
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3821,7 +3826,7 @@ msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3867,7 +3872,7 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3893,7 +3898,7 @@ msgstr ""
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3911,7 +3916,7 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3919,7 +3924,7 @@ msgstr ""
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -3936,7 +3941,7 @@ msgid "Supplier part description"
 msgstr ""
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4783,7 +4788,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr ""
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr ""
 
@@ -5478,38 +5483,42 @@ msgstr ""
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr ""
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr ""
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr ""
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr ""
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr ""
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr ""
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr ""
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr ""
@@ -5556,11 +5565,13 @@ msgstr ""
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5577,7 +5588,7 @@ msgstr ""
 msgid "Category Path"
 msgstr ""
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5600,16 +5611,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr ""
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr ""
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr ""
@@ -5660,7 +5673,7 @@ msgstr ""
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr ""
@@ -5694,7 +5707,7 @@ msgid "Default keywords for parts in this category"
 msgstr ""
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr ""
 
@@ -5741,7 +5754,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr ""
 
@@ -5765,10 +5778,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr ""
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5876,151 +5889,159 @@ msgstr ""
 msgid "Sell multiple"
 msgstr ""
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6028,567 +6049,596 @@ msgstr ""
 msgid "Date"
 msgstr ""
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr ""
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr ""
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr ""
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr ""
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr ""
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr ""
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr ""
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr ""
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr ""
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr ""
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr ""
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr ""
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr ""
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr ""
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr ""
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr ""
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr ""
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr ""
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr ""
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr ""
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr ""
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr ""
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr ""
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr ""
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr ""
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr ""
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr ""
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr ""
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr ""
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr ""
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr ""
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr ""
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr ""
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr ""
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr ""
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr ""
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr ""
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr ""
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr ""
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr ""
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr ""
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr ""
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr ""
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr ""
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr ""
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr ""
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr ""
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7062,8 +7112,8 @@ msgstr ""
 msgid "Hide Part Details"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr ""
 
@@ -7078,8 +7128,8 @@ msgstr ""
 msgid "No supplier pricing available"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7147,7 +7197,20 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7155,65 +7218,73 @@ msgstr ""
 msgid "Last Updated"
 msgstr ""
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr ""
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr ""
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9325,7 +9396,7 @@ msgid "Project Codes"
 msgstr ""
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr ""
 
@@ -9366,14 +9437,6 @@ msgstr ""
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr ""
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9397,68 +9460,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10801,10 +10869,6 @@ msgstr ""
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po
index 2d7e52866b..d77a1084ae 100644
--- a/InvenTree/locale/tr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/tr/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Turkish\n"
 "Language: tr_TR\n"
@@ -56,8 +56,8 @@ msgstr "Tarih giriniz"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr "Ek"
 msgid "Select file to attach"
 msgstr "Eklenecek dosyayı seç"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr "Yorum"
 msgid "File comment"
 msgstr "Dosya yorumu"
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr ""
 msgid "Invalid choice"
 msgstr "Geçersiz seçim"
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr "Adı"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr "Adı"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr "Sunucu Hatası"
 msgid "An error has been logged by the server."
 msgstr ""
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "Geçerli bir numara olmalı"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -661,7 +661,7 @@ msgstr ""
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr "Arka plan çalışanı kontrolü başarısız oldu"
 
@@ -917,14 +917,14 @@ msgstr "InvenTree Hakkında"
 msgid "Build must be cancelled before it can be deleted"
 msgstr ""
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr ""
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -993,7 +993,7 @@ msgstr "Yapım İşi Emri Referansı"
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1023,11 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1168,13 @@ msgid "User who issued this build order"
 msgstr "Bu yapım işi emrini veren kullanıcı"
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1206,7 @@ msgstr ""
 msgid "Priority of this build order"
 msgstr ""
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1244,7 @@ msgstr "Yapım işi çıktısı, yapım işi emri ile eşleşmiyor"
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr ""
@@ -1258,10 +1259,10 @@ msgstr ""
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1426,7 @@ msgid "A list of build outputs must be provided"
 msgstr ""
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2032,1365 +2033,1369 @@ msgstr "{name.title()} Dosya"
 msgid "Select {name} file to upload"
 msgstr "{name} dosyasını yüklemek için seçin"
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr ""
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr ""
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr ""
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr ""
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr ""
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr ""
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr ""
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr ""
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr ""
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr "Anahtar dizesi benzersiz olmalı"
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr ""
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr ""
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr ""
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr ""
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr ""
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr ""
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr ""
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr ""
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr ""
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr ""
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr "Şirket adı"
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr ""
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr "Ana URL"
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr ""
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr "Varsayılan Para Birimi"
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr ""
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr "günler"
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr "URL'den indir"
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr "Harici URL'den resim ve dosyaların indirilmesine izin ver"
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr ""
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr ""
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr ""
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr ""
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr ""
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr ""
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr ""
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr ""
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr ""
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr ""
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr ""
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr ""
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr ""
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr ""
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr ""
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr ""
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr "Barkod Desteği"
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr ""
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr ""
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr ""
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr ""
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr ""
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr ""
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr "DPN Regex"
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr "Parça DPN eşleştirmesi için Düzenli İfade Kalıbı (Regex)"
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr "Yinelenen DPN'ye İzin Ver"
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr "Birden çok parçanın aynı DPN'yi paylaşmasına izin ver"
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr "DPN Düzenlemeye İzin Ver"
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr "Parçayı düzenlerken DPN değiştirmeye izin ver"
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr ""
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr ""
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr ""
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr "Kategori Paremetre Sablonu Kopyala"
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr "Parça oluştururken kategori parametre şablonlarını kopyala"
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr "Şablon"
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr "Parçaları varsayılan olan şablondur"
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr "Montaj"
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr "Parçalar varsayılan olarak başka bileşenlerden monte edilebilir"
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr "Bileşen"
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr "Parçalar varsayılan olarak alt bileşen olarak kullanılabilir"
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr "Satın Alınabilir"
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr "Parçalar varsayılan olarak satın alınabilir"
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr "Satılabilir"
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr "Parçalar varsayılan olarak satılabilir"
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr "Takip Edilebilir"
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr "Parçalar varsayılan olarak takip edilebilir"
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr "Sanal"
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr "Parçalar varsayılan olarak sanaldır"
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr ""
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr ""
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr "İlgili parçaları göster"
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr ""
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr ""
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr ""
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr ""
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr ""
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr ""
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr ""
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr ""
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr ""
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr ""
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr ""
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr ""
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr ""
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr ""
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr ""
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr ""
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr ""
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr ""
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr ""
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr ""
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr ""
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr ""
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr ""
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr ""
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr ""
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr ""
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr ""
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr ""
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr ""
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr ""
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr "Hata Ayıklama Modu"
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr "Raporları hata ayıklama modunda üret (HTML çıktısı)"
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr "Sayfa Boyutu"
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr "PDF raporlar için varsayılan sayfa boyutu"
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr ""
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr ""
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr ""
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr ""
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr ""
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr ""
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr ""
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr ""
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr ""
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr ""
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr ""
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr ""
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr ""
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr ""
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr ""
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr ""
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr ""
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr ""
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr ""
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr ""
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr ""
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr "Stok konumu ve ögeler üzerinde sahiplik kontrolünü etkinleştirin"
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr ""
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr ""
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr ""
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr ""
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr ""
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr ""
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr ""
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr ""
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr ""
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr ""
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr ""
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr ""
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr ""
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr ""
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr ""
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr ""
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr ""
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr ""
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr ""
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr ""
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr ""
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr ""
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr ""
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr ""
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr ""
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr ""
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr ""
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr ""
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr ""
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr ""
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr ""
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr ""
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr ""
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr ""
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr ""
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr ""
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr ""
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr ""
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr ""
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr ""
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr ""
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr ""
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr ""
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr ""
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr ""
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr ""
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr ""
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr ""
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr ""
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr ""
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr ""
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr ""
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr ""
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr ""
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr ""
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr ""
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr ""
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr ""
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr ""
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr ""
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr ""
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr ""
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr ""
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr ""
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr ""
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr ""
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr ""
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr ""
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr ""
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr ""
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr ""
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr ""
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr ""
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr ""
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr ""
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr ""
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr ""
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr ""
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr ""
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr ""
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr ""
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr ""
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr ""
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr ""
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr ""
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr ""
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr ""
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr ""
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr ""
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr ""
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr ""
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr ""
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr ""
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr ""
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr ""
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr ""
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr ""
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr ""
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr ""
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr ""
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr ""
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr ""
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr ""
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr ""
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr ""
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr ""
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr ""
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr ""
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr ""
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr ""
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr ""
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr ""
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr ""
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr ""
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr ""
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr ""
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr "Formlarda Miktarı Göster"
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr ""
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr ""
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr ""
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr ""
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr ""
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr ""
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr ""
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr ""
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr ""
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr ""
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr ""
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr ""
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3398,23 +3403,23 @@ msgstr ""
 msgid "Price"
 msgstr "Fiyat"
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr ""
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr ""
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr ""
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3423,101 +3428,101 @@ msgstr ""
 msgid "Active"
 msgstr "Aktif"
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr ""
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr ""
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr ""
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr ""
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr ""
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr ""
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr ""
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr ""
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr ""
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr ""
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr ""
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr ""
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr ""
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr ""
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr ""
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr ""
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr ""
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr ""
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr ""
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr ""
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr ""
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr ""
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr ""
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3527,31 +3532,31 @@ msgstr ""
 msgid "Image"
 msgstr "Resim"
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr ""
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3806,7 +3811,7 @@ msgstr "Parça seçin"
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3821,7 +3826,7 @@ msgid "Select manufacturer"
 msgstr "Üretici seçin"
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3867,7 +3872,7 @@ msgid "Parameter value"
 msgstr "Parametre değeri"
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3893,7 +3898,7 @@ msgstr ""
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3911,7 +3916,7 @@ msgid "Select supplier"
 msgstr "Tedarikçi seçin"
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3919,7 +3924,7 @@ msgstr "Tedarikçi seçin"
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -3936,7 +3941,7 @@ msgid "Supplier part description"
 msgstr ""
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4783,7 +4788,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr ""
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr ""
 
@@ -5478,38 +5483,42 @@ msgstr ""
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr ""
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr ""
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr ""
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr ""
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr "DPN"
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr "Revizyon"
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr "Anahtar kelimeler"
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr ""
@@ -5556,11 +5565,13 @@ msgstr ""
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5577,7 +5588,7 @@ msgstr ""
 msgid "Category Path"
 msgstr ""
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5600,16 +5611,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr ""
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr ""
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr ""
@@ -5660,7 +5673,7 @@ msgstr ""
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr ""
@@ -5694,7 +5707,7 @@ msgid "Default keywords for parts in this category"
 msgstr ""
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr ""
 
@@ -5741,7 +5754,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr "Parça adı"
 
@@ -5765,10 +5778,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr ""
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5876,151 +5889,159 @@ msgstr ""
 msgid "Sell multiple"
 msgstr ""
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6028,567 +6049,596 @@ msgstr ""
 msgid "Date"
 msgstr ""
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr ""
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr ""
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr ""
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr "Test şablonları sadece takip edilebilir paçalar için oluşturulabilir"
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr "Test Adı"
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr ""
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr "Test Açıklaması"
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr "Gerekli"
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr "Testi geçmesi için bu gerekli mi?"
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr ""
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr ""
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr "Parametre şablon adı benzersiz olmalıdır"
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr ""
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr ""
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr "Parametre Şablonu"
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr ""
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr ""
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr ""
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr ""
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr ""
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr ""
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr ""
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr ""
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr ""
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr ""
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr ""
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr ""
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr ""
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr ""
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr ""
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 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:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr "Çeşide İzin Ver"
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr "Çeşit parçaların stok kalemleri bu malzeme listesinde kullanılabilir"
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr ""
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr ""
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr ""
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr ""
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr ""
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr ""
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr ""
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr ""
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr ""
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr ""
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr ""
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr ""
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr ""
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr ""
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr ""
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr ""
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr ""
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7062,8 +7112,8 @@ msgstr ""
 msgid "Hide Part Details"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr ""
 
@@ -7078,8 +7128,8 @@ msgstr "Birim Maliyeti"
 msgid "No supplier pricing available"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7147,7 +7197,20 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7155,65 +7218,73 @@ msgstr ""
 msgid "Last Updated"
 msgstr ""
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr ""
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr ""
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9325,7 +9396,7 @@ msgid "Project Codes"
 msgstr ""
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr ""
 
@@ -9366,14 +9437,6 @@ msgstr ""
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr ""
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9397,68 +9460,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr "Kategori parametre şablonu bulunamadı"
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr "Şablonu Düzenle"
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr "Şablonu Sil"
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr "Kategori Parametre Şablonu Sil"
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr "Kategori Parametre Şablonu Oluştur"
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr "Parça Parametre Şablonu Oluştur"
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10801,10 +10869,6 @@ msgstr ""
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po
index 01a7eb9a21..b0c81cc292 100644
--- a/InvenTree/locale/vi/LC_MESSAGES/django.po
+++ b/InvenTree/locale/vi/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:37\n"
 "Last-Translator: \n"
 "Language-Team: Vietnamese\n"
 "Language: vi_VN\n"
@@ -56,8 +56,8 @@ msgstr "Nhập ngày"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr "Đính kèm"
 msgid "Select file to attach"
 msgstr "Chọn file đính kèm"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr "Bình luận"
 msgid "File comment"
 msgstr "Bình luận tệp tin"
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr "Tên trùng lặp không thể tồn tại trong cùng cấp thư mục"
 msgid "Invalid choice"
 msgstr "Lựa chọn sai"
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr "Tên"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr "Tên"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr "Lỗi máy chủ"
 msgid "An error has been logged by the server."
 msgstr "Lỗi đã được ghi lại bởi máy chủ."
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "Phải là một số hợp lệ"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -662,7 +662,7 @@ msgstr "Tiếng Trung (Giản thể)"
 msgid "Chinese (Traditional)"
 msgstr "Tiếng Trung (Phồn thể)"
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr "Nhân công chạy ngầm kiểm tra thất bại"
 
@@ -918,14 +918,14 @@ msgstr "Giới thiệu"
 msgid "Build must be cancelled before it can be deleted"
 msgstr "Bạn dựng phải được hủy bỏ trước khi có thể xóa được"
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr "Vật tư tiêu hao"
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -994,7 +994,7 @@ msgstr "Tham chiếu đơn đặt bản dựng"
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1024,11 +1024,11 @@ msgstr "Đơn đặt bản dựng với bản dựng này đã được phân b
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1169,12 +1169,13 @@ msgid "User who issued this build order"
 msgstr "Người dùng người đã được phân công cho đơn đặt bản dựng này"
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1206,7 +1207,7 @@ msgstr "Độ ưu tiên"
 msgid "Priority of this build order"
 msgstr "Độ quan trọng của đơn đặt bản dựng"
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1244,7 +1245,7 @@ msgstr "Đầu ra bản dựng không phù hợp với đơn đặt bản dựng
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr "Số lượng phải lớn hơn 0"
@@ -1259,10 +1260,10 @@ msgstr "Dựng đối tượng"
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1426,7 +1427,7 @@ msgid "A list of build outputs must be provided"
 msgstr "Danh sách đầu ra bản dựng phải được cung cấp"
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2033,1365 +2034,1369 @@ msgstr "Tập tin {name.title()}"
 msgid "Select {name} file to upload"
 msgstr "Chọn tập tin {name} để tải lên"
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr "Đã cập nhật"
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr "Nhãn thời gian của lần cập cuối cùng"
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr "Mã dự án duy nhất"
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr "Mô tả dự án"
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr "Khóa thiết lập (phải duy nhất - phân biệt hoa thường)"
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr "Giá trị cài đặt"
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr "Giá trị đã chọn không hợp lệ"
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr "Giá trị phải là kiểu boolean"
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr "Giá trị phải là một số nguyên dương"
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr "Chuỗi khóa phải duy nhất"
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr "Không có nhóm"
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr "Tên miền rỗng là không được phép."
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr "Tên miền không hợp lệ: {domain}"
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr "Không phần mở rộng"
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr "Cần khởi động lại"
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr "Một thiết lập đã bị thay đổi yêu cầu khởi động lại máy chủ"
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr "Chuyển dữ liệu chờ xử lý"
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr "Số đợt nâng cấp cơ sở dữ liệu chờ xử lý"
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr "Tên thực thể máy chủ"
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr "Mô tả chuỗi cho thực thể máy chủ"
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr "Sử dụng tên thực thể"
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr "Sử dụng tên thực thể trên thanh tiêu đề"
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr "Cấm hiển thị `giới thiệu`"
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr "Chỉ hiển thị cửa sổ `giới thiệu` với siêu người dùng"
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr "Tên công ty"
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr "Tên công ty nội bộ"
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr "URL cơ sở"
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr "URL cơ sở cho thực thể máy chủ"
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr "Tiền tệ mặc định"
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr "Chọn tiền tệ chính khi tính giá"
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr "Tần suất cập nhật tiền tệ"
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr "Mức độ thường xuyên để cập nhật tỉ giá hối đoái (điền 0 để tắt)"
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr "ngày"
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr "Phần mở rộng cập nhật tiền tệ"
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr "Phần mở rộng cập nhật tiền tệ được sử dụng"
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr "Tải về từ URL"
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr "Cho phép tải ảnh và tệp tin từ xa theo URL bên ngoài"
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr "Giới hạn kích thước tải xuống"
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr "Kích thước tải xuống tối đa với hình ảnh từ xa"
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr "User-agent được dùng để tải xuống theo URL"
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr "Cho phép ghi đè user-agent được dùng để tải về hình ảnh và tệp tin từ xa theo URL bên ngoài (để trống nghĩa là dùng mặc định)"
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr "Yêu cầu xác nhận"
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr "Yêu cầu người dùng xác nhận rõ ràng với một số chức năng nhất định."
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr "Cấp độ cây"
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr "Độ sâu cây mặc định cho màn hình cây. Cấp độ sâu hơn sẽ sử dụng kỹ thuật tải chậm nếu cần thiết."
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr "Thời gian kiểm tra bản cập nhật"
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr "Mức độ thường xuyên để kiểm tra bản cập nhật (điền 0 để tắt)"
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr "Sao lưu tự động"
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr "Bật tính năng sao lưu tự động cơ sở dữ liệu và tệp tin đa phương tiện"
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr "Khoảng thời gian sao lưu tự động"
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr "Xác định số ngày giữa các kỳ sao lưu tự động"
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr "Khoảng thời gian xóa tác vụ"
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr "Kết quả tác vụ chạy ngầm sẽ bị xóa sau số ngày được chỉ định"
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr "Khoảng thời gian xóa nhật ký lỗi"
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr "Nhật ký lỗi sẽ bị xóa sau số ngày được chỉ định"
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr "Khoảng thời gian xóa thông báo"
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr "Thông báo sẽ bị xóa sau số ngày được chỉ định"
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr "Hỗ trợ mã vạch"
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr "Bật hỗ trợ máy quét mã vạch trong giao diện web"
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr "Độ trễ quét mã vạch"
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr "Thời gian trễ xử lý đầu đọc mã vạch"
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr "Hỗ trợ mã vạch qua webcam"
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr "Cho phép quét mã vạch qua webcam bên trong trình duyệt"
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr "Phiên bản Sản phẩm"
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr "Bật trường phiên bản cho sản phẩm"
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr "Mẫu IPN"
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr "Mẫu dùng nhanh phổ biến dành cho tìm IPN sản phẩm"
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr "Cho phép trùng IPN"
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr "Cho phép nhiều sản phẩm dùng IPN giống nhau"
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr "Cho phép sửa IPN"
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr "Cho phép đổi giá trị IPN khi sửa một sản phẩm"
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr "Sao chép dữ liệu BOM của sản phẩm"
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr "Sao chép dữ liệu BOM mặc định khi nhân bản 1 sản phẩm"
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr "Sao chép dữ liệu tham số sản phẩm"
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr "Sao chép dữ liệu tham số mặc định khi nhân bản 1 sản phẩm"
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr "Chép thông tin kiểm thử sản phẩm"
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr "Sao chép dữ liệu kiểm thử mặc định khi nhân bản 1 sản phẩm"
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr "Sao chéo mẫu tham số danh mục"
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr "Sao chéo mẫu tham số danh mục khi tạo 1 sản phẩm"
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr "Mẫu"
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr "Sản phẩm là mẫu bởi mặc định"
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr "Lắp ráp"
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr "Sản phẩm có thể lắp giáp từ thành phần khác theo mặc định"
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr "Thành phần"
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr "Sản phẩm có thể được sử dụng mặc định như thành phần phụ"
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr "Có thể mua"
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr "Sản phẩm mặc định có thể mua được"
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr "Có thể bán"
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr "Sản phẩm mặc định có thể bán được"
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr "Có thể theo dõi"
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr "Sản phẩm mặc định có thể theo dõi được"
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr "Ảo"
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr "Sản phẩm mặc định là số hóa"
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr "Hiển thị Nhập liệu trong khung xem"
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr "Hiển thị đồ thuật nhập dữ liệu trong một số khung nhìn sản phẩm"
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr "Hiển thị sản phẩm liên quan"
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr "Hiện sản phẩm liên quan cho 1 sản phẩm"
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr "Số liệu tồn kho ban đầu"
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr "Cho phép tạo tồn kho ban đầu khi thêm 1 sản phẩm mới"
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr "Dữ liệu nhà cung cấp ban đầu"
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr "Cho phép tạo dữ liệu nhà cung cấp ban đầu khi thêm 1 sản phẩm mới"
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr "Định dạng tên sản phẩm hiển thị"
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr "Định dạng để hiển thị tên sản phẩm"
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr "Biểu tượng mặc định của danh mục sản phẩm"
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr "Biểu tượng mặc định của danh mục sản phẩm (để trống nghĩa là không có biểu tượng)"
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr "Bắt buộc đơn vị tham số"
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr "Nếu đơn vị được cung cấp, giá trị tham số phải phù hợp với các đơn vị xác định"
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr "Vị trí phần thập phân giá bán tối thiểu"
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr "Số vị trí thập phân tối thiểu cần hiển thị khi tạo dữ liệu giá"
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr "Vị trí phần thập phân giá bán tối đa"
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr "Số vị trí thập phân tối đa cần hiển thị khi tạo dữ liệu giá"
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr "Sử dụng giá bán nhà cung cấp"
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr "Bao gồm giá phá vỡ cả nhà cung cấp trong tính toán giá tổng thể"
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr "Ghi đè lịch sử mua hàng"
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr "Giá đơn hàng đặt mua trước đó ghi đè giá phá vỡ của nhà cung cấp"
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr "Sử dụng giá hàng hóa trong kho"
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr "Dùng giá bán từ dữ liệu kho nhập vào thủ công đối với bộ tính toán giá bán"
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr "Tuổi giá kho hàng"
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr "Loại trừ hàng hóa trong kho cũ hơn số ngày ngày từ bảng tính giá bán"
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr "Sử dụng giá biến thể"
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr "Bao gồm giá biến thể trong bộ tính toán giá tổng thể"
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr "Chỉ các biến thể hoạt động"
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr "Chỉ sử dụng sản phẩm biến thể hoạt động để tính toán giá bán biến thể"
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr "Tần suất tạo lại giá"
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr "Số ngày trước khi giá sản phẩm được tự động cập nhật"
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr "Giá nội bộ"
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr "Bật giá nội bộ cho sản phẩm"
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr "Ghi đè giá nội bộ"
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr "Nếu khả dụng, giá nội bộ ghi đè tính toán khoảng giá"
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr "Bật in tem nhãn"
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr "Bật chức năng in tem nhãn từ giao diện web"
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr "DPI hỉnh ảnh tem nhãn"
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr "Độ phân giải DPI khi tạo tệp hình ảnh để cung cấp cho plugin in ấn tem nhãn"
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr "Bật báo cáo"
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr "Cho phép tạo báo cáo"
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr "Chế độ gỡ lỗi"
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr "Tạo báo cáo trong chế độ gỡ lỗi (đầu ra HTML)"
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr "Khổ giấy"
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr "Kích thước trang mặc định cho báo cáo PDF"
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr "Bật báo cáo kiểm thử"
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr "Cho phép tạo báo cáo kiểm thử"
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr "Đính kèm báo cáo kiểm thử"
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr "Khi in một báo cáo kiểm thử, đính kèm một bản sao của báo cáo kiểm thử với hàng trong kho đã được kết hợp"
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr "Sê ri toàn cục duy nhất"
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr "Số sê ri cho hàng trong kho phải là duy nhất trong toàn hệ thống"
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr "Tự động điền số sê ri"
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr "Tự động điền số sê ri vào biểu mẫu"
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr "Xóa kho đã hết hàng"
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr "Nhận dạng hành vi mặc định khi hàng trong kho bị hết"
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr "Mẫu sinh mã theo lô"
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr "Mẫu tạo mã theo lô mặc định cho hàng trong kho"
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr "Quá hạn trong kho"
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr "Bật chức năng quá hạn tồn kho"
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr "Bán kho quá hạn"
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr "Cho phép bán hàng kho quá hạn"
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr "Thời gian hàng cũ trong kho"
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr "Số ngày hàng trong kho được xác định là cũ trước khi quá hạn"
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr "Dựng kho quá hạn"
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr "Cho phép xây dựng với kho hàng quá hạn"
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr "Kiểm soát sở hữu kho"
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr "Bật chức năng kiểm soát sở hữu kho với địa điểm và hàng trong kho"
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr "Biểu tượng địa điểm kho mặc định"
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr "Biểu tượng địa điểm kho hàng mặc định (trống nghĩa là không có biểu tượng)"
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr "Hiển thị hàng hóa đã lắp đặt"
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr "Hiển thị hàng trong kho đã được lắp đặt trên bảng kho"
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr "Mã tham chiếu đơn đặt bản dựng"
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr "Mẫu bắt buộc cho để trường tham chiếu đơn đặt bản dựng"
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr "Bật đơn hàng trả lại"
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr "Bật chức năng đơn hàng trả lại trong giao diện người dùng"
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr "Mẫu tham chiếu đơn hàng trả lại"
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr "Mẫu bắt buộc để tạo trường tham chiếu đơn hàng trả lại"
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr "Sửa đơn hàng trả lại đã hoàn thành"
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr "Cho phép sửa đơn hàng trả lại sau khi đã hoàn thành rồi"
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr "Mẫu tham chiếu đơn đặt hàng"
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr "Mẫu bắt buộc để tạo trường tham chiếu đơn đặt hàng"
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr "Vận chuyển mặc định đơn đặt hàng"
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr "Cho phép tạo vận chuyển mặc định với đơn đặt hàng"
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr "Sửa đơn đặt hàng đã hoàn thành"
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr "Cho phép sửa đơn đặt hàng sau khi đã vận chuyển hoặc hoàn thành"
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr "Mẫu tham chiếu đơn đặt mua"
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr "Mẫu bắt buộc cho để trường tham chiếu đơn đặt mua"
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr "Sửa đơn đặt mua đã hoàn thành"
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr "Cho phép sửa đơn đặt mua sau khi đã vận chuyển hoặc hoàn thành"
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr "Bật quên mật khẩu"
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr "Bật chức năng quên mật khẩu trong trang đăng nhập"
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr "Bật đăng ký"
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr "Cho phép người dùng tự đăng ký tại trang đăng nhập"
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr "Bật SSO"
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr "Cho phép SSO tại trang đăng nhập"
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr "Bật đăng ký SSO"
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr "Cho phép người dùng tự đăng ký SSO tại trang đăng nhập"
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr "Yêu cầu email"
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr "Yêu cầu người dùng cung cấp email để đăng ký"
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr "Người dùng tự động điền SSO"
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr "Tự động điền thông tin chi tiết từ dữ liệu tài khoản SSO"
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr "Thư 2 lần"
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr "Khi đăng ký sẽ hỏi người dùng hai lần thư điện tử của họ"
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr "Mật khẩu 2 lần"
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr "Khi đăng ký sẽ hỏi người dùng hai lần mật khẩu của họ"
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr "Các tên miền được phép"
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr "Cấm đăng ký với 1 số tên miền cụ thể (dấu phẩy ngăn cách, bắt đầu với dấu @)"
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr "Nhóm khi đăng ký"
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr "Nhóm được gán cho người dùng mới khi đăng ký"
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr "Bắt buộc MFA"
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr "Người dùng phải sử dụng bảo mật đa nhân tố."
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr "Kiểm tra phần mở rộng khi khởi động"
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr "Kiểm tra toàn bộ phần mở rộng đã được cài đặt khi khởi dộng - bật trong môi trường ảo hóa"
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr "Bật tích hợp URL"
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr "Bật phần mở rộng để thêm định tuyến URL"
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr "Bật tích hợp điều hướng"
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr "Bật phần mở rộng để tích hợp thanh định hướng"
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr "Bật tích hợp ứng dụng"
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr "Bật phần mở rộng để thêm ứng dụng"
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr "Cho phép tích hợp lập lịch"
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr "Bật phẩn mở rộng để chạy các tác vụ theo lịch"
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr "Bật tích hợp nguồn cấp sự kiện"
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr "Bật phần mở rộng để trả lời sự kiện bên trong"
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr "Bật mã dự án"
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr "Bật mã dự án để theo dõi dự án"
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr "Chức năng kiểm kê"
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr "Bật chức năng kiểm kê theo mức độ ghi nhận kho và tính toán giá trị kho"
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr "Ngoại trừ vị trí bên ngoài"
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr "Loại trừ hàng trong kho thuộc địa điểm bên ngoài ra khỏi tính toán kiểm kê"
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr "Giai đoạn kiểm kê tự động"
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr "Số ngày giữa ghi chép kiểm kê tự động (đặt không để tắt)"
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr "Khoảng thời gian xóa báo cáo"
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr "Báo cáo kiểm kê sẽ bị xóa sau số ngày xác định"
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr "Hiển thị tên đầy đủ của người dùng"
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr "Hiển thị tên đầy đủ thay vì tên đăng nhập"
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr "Khóa thiết lập (phải duy nhất - phân biệt hoa thường"
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr "Ẩn sản phẩm ngừng hoạt động"
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr "Ẩn sản phẩm bị tắt trong kết quả trình bày tại trang chủ"
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr "Hiện sản phẩm đã đăng ký"
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr "Hiện sản phẩm đã đăng ký trên trang chủ"
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr "Hiện danh mục đã đăng ký"
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr "Hiện danh mục sản phẩm đã đăng ký trên trang chủ"
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr "Hiển thị nguyên liệu mới nhất"
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr "Hiển thị nguyên liệu mới nhất trên trang chủ"
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr "Hiển thị BOM chưa được xác thực"
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr "Hiện BOM chờ xác thực tại trang chủ"
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr "Hiện thay đổi kho hàng gần đây"
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr "Hiện hàng trong kho được thay đổi gần nhất trên trang chủ"
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr "Hiển thị hàng còn ít"
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr "Hiển thị hàng hóa còn ít tại trang chủ"
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr "Hiển thị hết hàng"
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr "Hiển thị hàng hóa đã bán hết tại trang chủ"
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr "Hiển thị hàng cần thiết"
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr "Hiện hàng trong kho cần thiết cho xây dựng tại trang chủ"
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr "Bán kho quá hạn"
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr "Hiển thị hàng hóa đã quá hạn trên trang chủ"
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr "Hiện kho hàng ế"
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr "Hiện hàng trong kho bị ế trên trang chủ"
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr "Hiện bản dựng chờ xử lý"
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr "Hiện bản dựng chờ xử lý trên trang chủ"
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr "Hiện bản dựng quá hạn"
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr "Hiện bản dựng quá hạn trên trang chủ"
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr "Hiện PO nổi bật"
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr "Hiện PO nổi bật trên trang chủ"
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr "Hiện PO quá hạn"
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr "Hiện đơn mua hàng quá hạn trên trang chủ"
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr "Hiện đơn hàng vận chuyển nổi bật"
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr "Hiện đơn hàng vận chuyển nổi bật tại trang chủ"
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr "Hiện đơn vận chuyển quá hạn"
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr "Hiện đơn vận chuyển quá hạn trên trang chủ"
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr "Hiện đơn vận chuyển chờ xử lý"
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr "Hiện đơn vận chuyển chờ xử lý trên trang chủ"
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr "Hiện tin tức"
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr "Hiện tin tức trên trang chủ"
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr "Hiển thị nhãn cùng dòng"
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr "Hiển thị nhãn PDF trong trình duyệt, thay vì tải về dạng tệp tin"
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr "Máy in tem nhãn mặc định"
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr "Cấu hình máy in tem nhãn nào được chọn mặc định"
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr "Hiển thị báo cáo cùng hàng"
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr "Hiện báo cáo PDF trong trình duyệt, thay vì tải về dạng tệp tin"
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr "Tìm sản phẩm"
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr "Hiện hàng hóa trong cửa sổ xem trước tìm kiếm"
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr "Tìm sản phẩm nhà cung cấp"
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr "Hiện sản phẩm nhà cung cấp trong cửa sổ xem trước tìm kiếm"
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr "Tìm sản phẩm nhà sản xuất"
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr "Hiện sản phẩm nhà sản xuất trong cửa sổ xem trước tìm kiếm"
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr "Ẩn sản phẩm ngừng hoạt động"
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr "Loại trừ sản phẩm ngưng hoạt động trong cửa sổ xem trước tìm kiếm"
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr "Tìm kiếm danh mục"
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr "Hiện danh mục sản phẩm trong cửa sổ xem trước tìm kiếm"
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr "Tìm kiếm kho"
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr "Hiện hàng hóa ở kho trong cửa sổ xem trước tìm kiếm"
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr "Ẩn hàng hóa trong kho không có sẵn"
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr "Không bao gồm hàng hóa trong kho mà không sẵn sàng từ màn hình xem trước tìm kiếm"
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr "Tìm kiếm vị trí"
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr "Hiện vị trí kho hàng trong cửa sổ xem trước tìm kiếm"
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr "Tìm kiếm công ty"
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr "Hiện công ty trong cửa sổ xem trước tìm kiếm"
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr "Tìm kiếm đặt hàng xây dựng"
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr "Hiện đơn đặt xây dựng trong cửa sổ xem trước tìm kiếm"
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr "Tìm kiếm đơn đặt mua"
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr "Hiện đơn đặt mua trong cửa sổ xem trước tìm kiếm"
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr "Loại trừ đơn đặt mua không hoạt động"
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr "Loại trừ đơn đặt mua không hoạt động ra khỏi cửa sổ xem trước tìm kiếm"
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr "Tìm đơn đặt hàng người mua"
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr "Hiện đơn đặt hàng người mua trong cửa sổ xem trước tìm kiếm"
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr "Loại trừ đơn đặt hàng người mua không hoạt động"
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr "Không bao gồm đơn đặt hàng người mua không hoạt động trong cửa sổ xem trước tìm kiếm"
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr "Tìm kiếm đơn hàng trả lại"
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr "Hiện đơn hàng trả lại trong cửa sổ xem trước tìm kiếm"
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr "Loại trừ đơn hàng trả lại không hoạt động"
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr "Không bao gồm đơn hàng trả lại không hoạt động trong cửa sổ xem trước tìm kiếm"
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr "Kết quả xem trước tìm kiếm"
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr "Số kết quả cần hiển thị trong từng phần của cửa sổ xem trước tìm kiếm"
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr "Tìm kiếm biểu thức"
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr "Bật tìm kiếm biểu thức chính quy trong câu truy vấn tìm kiếm"
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr "Tìm phù hợp toàn bộ chữ"
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr "Truy vấn tìm trả về kết quả phù hợp toàn bộ chữ"
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr "Hiện số lượng trong biểu mẫu"
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr "Hiển thị số lượng sản phẩm có sẵn trong một số biểu mẫu"
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr "Phím escape để đóng mẫu biểu"
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr "Sử dụng phím escape để đóng mẫu biểu hộp thoại"
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr "Cố định điều hướng"
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr "Vị trí thành điều hướng là cố định trên cùng màn hình"
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr "Định dạng ngày"
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr "Định dạng ưa chuộng khi hiển thị ngày"
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr "Lập lịch sản phẩm"
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr "Hiển thị thông tin lịch sản phẩm"
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr "Kiểm kê sản phẩm"
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr "Hiển thị thông tin kiểm kê sản phẩm (nếu chức năng kiểm kê được bật)"
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr "Độ dài chuỗi trong bảng"
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr "Giới hạn độ dài tối đa cho chuỗi hiển thị trong kiểu xem bảng biểu"
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr "Mẫu nhãn sản phẩm mặc định"
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr "Mẫu nhãn sản phẩm mặc định được chọn tự động"
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr "Mẫu hàng hóa trong khi mặc định"
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr "Mẫu nhãn hàng hóa trong kho tự động được chọn"
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr "Mẫu nhãn vị trí kho mặc định"
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr "Mẫu nhãn vị trí kho được chọn tự động"
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr "Nhận báo cáo lỗi"
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr "Nhận thông báo khi có lỗi hệ thống"
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr "Số lượng giá phá vỡ"
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3399,23 +3404,23 @@ msgstr "Số lượng giá phá vỡ"
 msgid "Price"
 msgstr "Giá"
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr "Đơn vị giá theo số lượng cụ thể"
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr "Đầu mối"
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr "Đầu mối tại điểm webhook được nhận"
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr "Tên của webhook này"
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3424,101 +3429,101 @@ msgstr "Tên của webhook này"
 msgid "Active"
 msgstr "Hoạt động"
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr "Webhook có hoạt động không"
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr "Chữ ký số"
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr "Chữ ký số để truy cập"
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr "Bí mật"
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr "Mã bí mật dùng chung cho HMAC"
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr "Mã Tin nhắn"
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr "Định danh duy nhất cho tin nhắn này"
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr "Máy chủ"
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr "Mãy chủ từ tin nhắn này đã được nhận"
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr "Đầu mục"
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr "Đầu mục tin nhắn"
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr "Thân"
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr "Thân tin nhắn này"
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr "Đầu mối của tin nhắn này đã nhận được"
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr "Làm việc vào"
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr "Công việc trong tin nhắn này đã kết thúc?"
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr "Mã"
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr "Tiêu đề"
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr "Đã công bố"
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr "Tác giả"
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr "Tóm tắt"
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr "Đọc"
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr "Tin này đã được đọc?"
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3528,31 +3533,31 @@ msgstr "Tin này đã được đọc?"
 msgid "Image"
 msgstr "Hình ảnh"
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr "Tệp ảnh"
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr "Tên đơn vị phải là một định danh hợp lệ"
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr "Tên đơn vị"
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr "Biểu tượng"
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr "Biểu tượng đơn vị tùy chọn"
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr "Định nghĩa"
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr "Định nghĩa đơn vị"
 
@@ -3807,7 +3812,7 @@ msgstr "Chọn sản phẩm"
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3822,7 +3827,7 @@ msgid "Select manufacturer"
 msgstr "Chọn nhà sản xuất"
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3868,7 +3873,7 @@ msgid "Parameter value"
 msgstr "Giá trị tham số"
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3894,7 +3899,7 @@ msgstr "Sản phẩm nhà sản xuất đã liên kết phải tham chiếu vớ
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3912,7 +3917,7 @@ msgid "Select supplier"
 msgstr "Chọn nhà cung cấp"
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3920,7 +3925,7 @@ msgstr "Chọn nhà cung cấp"
 msgid "SKU"
 msgstr "SKU"
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr "Đơn vị quản lý kho nhà cung cấp"
 
@@ -3937,7 +3942,7 @@ msgid "Supplier part description"
 msgstr "Mô tả sản phẩm nhà cung cấp"
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4784,7 +4789,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr "Chỉ có thể gán sản phẩm có thể bán vào đơn đặt bán hàng"
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr "Giá bán"
 
@@ -5479,38 +5484,42 @@ msgstr "Cập nhật {part} giá đơn vị đến {price}"
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr "Cập nhật {part} giá đơn vị đến {price} và số lượng đến {qty}"
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr "ID sản phẩm"
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr "Tên sản phẩm"
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr "Mô tả sản phẩm"
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr "IPN"
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr "Phiên bản"
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr "Từ khóa"
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr "ID danh mục"
@@ -5557,11 +5566,13 @@ msgstr "Sử dụng trong"
 msgid "Building"
 msgstr "Đang dựng"
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr "Chi phí tối thiểu"
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr "Chi phí tối đa"
 
@@ -5578,7 +5589,7 @@ msgstr "Tên cha"
 msgid "Category Path"
 msgstr "Đưỡng dẫn danh mục"
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5601,16 +5612,18 @@ msgstr "ID hàng hóa BOM"
 msgid "Parent IPN"
 msgstr "IPN cha"
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr "IPN sản phẩm"
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr "Giá thấp nhất"
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr "Giá cao nhất"
@@ -5661,7 +5674,7 @@ msgstr "Số hàng tồn"
 msgid "Input quantity for price calculation"
 msgstr "Số lượng đầu ra cho tính toán giá bán"
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr "Danh mục sản phẩm"
@@ -5695,7 +5708,7 @@ msgid "Default keywords for parts in this category"
 msgstr "Từ khóa mặc định cho sản phẩm trong danh mục này"
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr "Biểu tượng"
 
@@ -5742,7 +5755,7 @@ msgstr "Sản phẩm với Tên, IPN và Duyệt lại đã tồn tại."
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr "Sản phẩm không thể được phân vào danh mục sản phẩm có cấu trúc!"
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr "Tên sản phẩm"
 
@@ -5766,10 +5779,10 @@ msgstr "Mô tả (không bắt buộc)"
 msgid "Part keywords to improve visibility in search results"
 msgstr "Từ khóa sản phẩm để cải thiện sự hiện diện trong kết quả tìm kiếm"
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5877,151 +5890,159 @@ msgstr "Kiểm kê cuối cùng"
 msgid "Sell multiple"
 msgstr "Bán nhiều"
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr "Tiền được dùng để làm đệm tính toán giá bán"
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr "Chi phí BOM tối thiểu"
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr "Chi phí thành phần sản phẩm tối thiểu"
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr "Chi phí BOM tối đa"
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr "Chi phí thành phần sản phẩm tối đa"
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr "Chi phí mua vào tối thiểu"
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr "Chi phí mua vào tối thiểu trong lịch sử"
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr "Chi phí mua tối đa"
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr "Chi phí thành phần sản phẩm tối đa trong lịch sử"
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr "Giá nội bộ tối thiểu"
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr "Chi phí tối thiểu dựa trên phá vỡ giá nội bộ"
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr "Giá nội bộ tối đa"
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr "Chi phí tối đa dựa trên phá vỡ giá nội bộ"
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr "Giá nhà cung ứng tối thiểu"
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr "Giá sản phẩm tối thiểu từ nhà cung ứng bên ngoài"
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr "Giá nhà cung ứng tối đa"
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr "Giá sản phẩm tối đã từ nhà cung ứng bên ngoài"
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr "Giá trị biến thể tối thiểu"
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr "Chi phí tối thiểu của sản phẩm biến thể đã tính"
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr "Chi phí biến thể tối đa"
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr "Chi phí tối đa của sản phẩm biến thể đã tính"
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr "Chi phí tối thiểu tính toán tổng thể"
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr "Chi phí tối đa tính toán tổng thể"
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr "Giá bán thấp nhất"
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr "Giá bán tối thiểu dựa trên phá giá"
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr "Giá bán cao nhất"
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr "Giá bán cao nhất dựa trên phá giá"
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr "Chi phí bán hàng tối thiểu"
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr "Giá bán hàng tối thiểu trong lịch sử"
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr "Giá bán hàng tối đa"
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr "Giá bán hàng tối đa trong lịch sử"
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr "Sản phẩm dành cho kiểm kê"
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr "Tổng số hàng"
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr "Số mục kho độc lậo tại thời điểm kiểm kê"
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr "Tống số kho tại thời điểm kiểm kê"
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6029,567 +6050,596 @@ msgstr "Tống số kho tại thời điểm kiểm kê"
 msgid "Date"
 msgstr "Ngày"
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr "Kiểm kê đã thực hiện"
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr "Ghi chú bổ sung"
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr "Người dùng đã thực hiện đợt kiểm kê này"
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr "Chi phí kho tối thiểu"
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr "Chi phí kho tối thiểu ước tính của kho đang có"
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr "Chi phí kho tối đa"
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr "Chi phí kho tối đa ước tính của kho đang có"
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr "Báo cáo"
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr "Tệp báo cáo kiểm kê (được sinh nội bộ)"
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr "Bộ đếm sản phẩm"
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr "Số sản phẩm đã được bao quát bởi kiểm kê"
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr "Người dùng đã yêu cầu báo cáo kiểm kê này"
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr "Chỉ có thể tạo mẫu kiểm thử cho sản phẩm có thể theo dõi"
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr "Kiểm thử với tên này đã tồn tại cho sản phẩm này"
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr "Tên kiểm thử"
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr "Nhập tên cho kiểm thử"
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr "Mô tả kiểm thử"
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr "Nhập mô tả cho kiểm thử này"
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr "Bắt buộc"
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr "Kiểm thử này bắt buộc phải đạt?"
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr "Giá trị bắt buộc"
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr "Kiểm thử này yêu cầu 1 giá trị khi thêm một kết quả kiểm thử?"
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr "Yêu cầu đính kèm"
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr "Kiểm thử này yêu cầu tệp đính kèm khi thêm một kết quả kiểm thử?"
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr "Tham số hộp kiểm tra không thể có đơn vị"
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr "Tham số hộp kiểm tra không thể có lựa chọn"
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr "Lựa chọn phải duy nhất"
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr "Tên tham số mẫu phải là duy nhất"
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr "Tên tham số"
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr "Đơn vị vật lý cho tham số này"
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr "Mô tả tham số"
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr "Ô lựa chọn"
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr "Tham số này có phải là hộp kiểm tra?"
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr "Lựa chọn"
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr "Lựa chọn hợp lệ từ tham số này (ngăn cách bằng dấu phẩy)"
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr "Lựa chọn sai cho giá trị tham số"
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr "Sản phẩm cha"
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr "Mẫu tham số"
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr "Dữ liệu"
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr "Giá trị tham số"
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr "Giá trị mặc định"
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr "Giá trị tham số mặc định"
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr "Tên hoặc mã sản phẩm"
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr "Giá trị mã sản phẩm duy nhất"
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr "Giá trị IPN sản phẩm"
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr "Cấp độ"
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr "Cấp độ BOM"
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr "Mục BOM"
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr "Chọn sản phẩm cha"
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr "Sản phẩm phụ"
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr "Chọn sản phẩm được dùng trong BOM"
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr "Số lượng BOM cho mục BOM này"
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr "Mục BOM này là tùy chọn"
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr "Mục BOM này bị tiêu hao (không được theo dõi trong đơn đặt bản dựng)"
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr "Dư thừa"
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr "Số lượng bản dựng lãng phí ước tính (tuyệt đối hoặc phần trăm)"
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr "Tham chiếu mục BOM"
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr "Ghi chú mục BOM"
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr "Giá trị tổng kiểm"
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr "Giá trị tổng kiểm dòng BOM"
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr "Đã xác minh"
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr "Mục BOM này là hợp lệ"
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr "Nhận thừa hưởng"
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr "Mục BOM này được thừa kế bởi BOM cho sản phẩm biến thể"
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr "Cho phép biến thể"
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr "Hàng trong kho cho sản phẩm biến thể có thể được dùng bởi mục BOM này"
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr "Số lượng phải là giá trị nguyên dùng cho sản phẩm có thể theo dõi được"
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr "Sản phẩm phụ phải được chỉ định"
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr "Sảm phẩm thay thế mục BOM"
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr "Sản phẩm thay thế không thể giống sản phẩm chủ đạo"
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr "Hàng hóa BOM cha"
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr "Sản phẩm thay thế"
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr "Sản phẩm 1"
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr "Sản phẩm 2"
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr "Chọn sản phẩm liên quan"
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr "Không thể tạo mối quan hệ giữa một sản phẩm và chính nó"
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr "Đã tồn tại mối quan hệ trùng lặp"
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr "Loại tiền mua hàng của hàng hóa này"
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr "Chưa chọn sản phẩm"
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr "Chọn danh mục"
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr "Sản phẩm gốc"
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr "Chọn sản phẩm gốc để nhân bản"
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr "Sao chép ảnh"
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr "Sao chép hình ảnh từ sản phẩm gốc"
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr "Sao chép BOM"
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr "Sao chép định mức nguyên vật liệu từ sản phẩm gốc"
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr "Sao chép thông số"
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr "Sao chép thông tin tham số từ sản phẩm gốc"
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr "Sao chép ghi chú"
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr "Sao chép ghi chú từ sản phẩm gốc"
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr "Số liệu tồn kho ban đầu"
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr "Chỉ ra số lượng tồn kho ban đầu cho sản phẩm. Nếu điền là không, không thêm kho nào."
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr "Vị trí kho ban đầu"
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr "Chỉ định vị trí kho ban đầu cho sản phẩm này"
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr "Chọn nhà cung cấp (hoặc để trống để bỏ qua)"
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr "Chọn nhà sản xuất (hoặc để trống để bỏ qua)"
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr "Mã số nhà sản xuất"
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr "Công ty đã chọn không phải là nhà cung ứng hợp lệ"
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr "Công ty đã chọn không phải là nhà sản xuất hợp lệ"
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr "Mã số nhà sản xuất khớp với MPN này đã tồn tại"
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr "Mã số nhà cung cấp khớp với SKU này đã tồn tại"
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr "Nhân bản sản phẩm"
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr "Sao chép dữ liệu ban đầu từ sản phẩm khác"
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr "Số liệu kho ban đầu"
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr "Tạo sản phẩm với số lượng tồn kho ban đầu"
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr "Thông tin nhà cung cấp"
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr "Thêm thông tin nhà cung cấp ban đầu cho sản phẩm này"
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr "Sao chép thông số nhóm hàng"
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr "Sao chép mẫu tham số từ nhóm sản phẩm được chọn"
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr "Hạn chế báo cáo kiểm kê với sản phẩm riêng biệt và sản phẩm biến thể bất kỳ"
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr "Hạn chế báo cáo kiểm kê với danh mục sản phẩm riêng biệt và danh mục con bất kỳ"
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr "Hạn chế báo cáo kiểm kê với vị trí kho riêng biệt và vị trí con bất kỳ"
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr "Ngoại trừ kho bên ngoài"
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr "Loại trừ hàng trong kho của vị trí bên ngoài"
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr "Tạo báo cáo"
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr "Tạo tệp báo cáo chứa dữ liệu kiểm kê đã tính toán"
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr "Cập nhật sản phẩm"
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr "Cập nhật sản phẩm cụ thể với dữ liệu kiểm kê đã tính"
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr "Chức năng kiểm kê chưa được bật"
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr "Cập nhật"
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr "Cập nhật giá cho sản phẩm này"
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr "Chọn sản phẩm để sao chép định mức nguyên vật liệu"
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr "Xóa dữ liệu đã tồn tại"
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr "Xóa mục BOM đã tồn tại trước khi sao chép"
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr "Bao gồm thừa hưởng"
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr "Bao gồm mục BOM được thừa hưởng từ sản phẩm mẫu"
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr "Bỏ qua dòng không hợp lệ"
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr "Bật tùy chọn này để bỏ qua dòng không hợp lệ"
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr "Sao chép sản phẩm thay thế"
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr "Sao chép sản phẩm thay thế khi nhân bản hàng hóa BOM"
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr "Dọn dẹp BOM đang tồn tại"
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr "Xóa mục BOM đang tồn tại trước khi tải lên"
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr "Chưa chỉ ra cột sản phẩm"
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr "Tìm thấy nhiều sản phẩm phù hợp"
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr "Không tìm thấy sản phẩm nào"
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr "Sản phẩm không được chỉ định như là một thành phần"
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr "Chưa cung cấp số lượng"
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr "Số lượng không hợp lệ"
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr "Buộc phải nhập ít nhất một mục BOM"
 
@@ -7063,8 +7113,8 @@ msgstr "Không tìm thấy hình ảnh phù hợp"
 msgid "Hide Part Details"
 msgstr "Ẩn chi tiết sản phẩm"
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr "Giá bán nhà cung cấp"
 
@@ -7079,8 +7129,8 @@ msgstr "Chi phí đơn vị"
 msgid "No supplier pricing available"
 msgstr "Chưa có sẵn giá cả nhà cung cấp"
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr "Giá cả BOM"
 
@@ -7148,7 +7198,20 @@ msgstr "Tóm lược định giá"
 msgid "Refresh Part Pricing"
 msgstr "Làm mới giá sản phẩm"
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr "Sửa"
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7156,65 +7219,73 @@ msgstr "Làm mới giá sản phẩm"
 msgid "Last Updated"
 msgstr "Cập nhật lần cuối"
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr "Danh mục giá"
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr "Tối thiểu"
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr "Tối đa"
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr "Định giá nội bộ"
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr "Lịch sử mua hàng"
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr "Định giá biến thể"
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr "Định giá tổng thể"
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr "Lịch Sử Giao Dịch"
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr "Chưa có dữ liệu giá giao dịch cho sản phẩm này"
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr "Dữ liệu khoảng giá không có sẵn cho sản phẩm này."
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr "Chuyển tới tổng quan"
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr "Thêm phá giá nội bộ"
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr "Định giá bán hàng"
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr "Thêm định giá bán hàng"
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9326,7 +9397,7 @@ msgid "Project Codes"
 msgstr "Mã dự án"
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr "Mã dự án mới"
 
@@ -9367,14 +9438,6 @@ msgstr "Chỉnh sửa cài đặt người dùng"
 msgid "Rate"
 msgstr "Tỷ lệ"
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr "Sửa"
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9398,68 +9461,73 @@ msgstr "Đơn vị tùy chỉnh mới"
 msgid "No project codes found"
 msgstr "Không tìm thấy mã dự án"
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr "nhóm"
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr "Sửa mã dự án"
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr "Xóa mã dự án"
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr "Không tìm thấy mẫu tham số danh mục"
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr "Sửa mẫu"
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr "Xóa mẫu"
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr "Sửa mẫu tham số danh mục"
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr "Xóa mẫu tham số danh mục"
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr "Tạo mẫu tham số danh mục"
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr "Tạo mẫu tham số sản phẩm"
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr "Không tìm thấy loại vị trí kho"
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr "Đếm vị trí"
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr "Sửa loại vị trí"
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr "Xóa loại vị trí"
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr "Xóa loại vị trí"
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr "Loại vị trí mới"
@@ -10802,10 +10870,6 @@ msgstr "Tiến trình"
 msgid "No user information"
 msgstr "Không có thông tin người dùng"
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr "nhóm"
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index 785e7640eb..1d47117a45 100644
--- a/InvenTree/locale/zh/LC_MESSAGES/django.po
+++ b/InvenTree/locale/zh/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"POT-Creation-Date: 2023-11-22 23:42+0000\n"
+"PO-Revision-Date: 2023-11-23 00:37\n"
 "Last-Translator: \n"
 "Language-Team: Chinese Traditional\n"
 "Language: zh_TW\n"
@@ -56,8 +56,8 @@ msgstr "輸入日期"
 #: company/models.py:732 company/templates/company/sidebar.html:37
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
-#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: order/templates/order/so_sidebar.html:17 part/admin.py:40
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -264,10 +264,10 @@ msgstr "附件"
 msgid "Select file to attach"
 msgstr "選擇附件"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
-#: part/admin.py:39 part/models.py:836
+#: part/admin.py:38 part/models.py:836
 #: part/templates/part/part_scheduling.html:11
 #: report/templates/report/inventree_build_order_base.html:164
 #: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -295,10 +295,10 @@ msgstr "註解"
 msgid "File comment"
 msgstr "檔案註解"
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -342,16 +342,16 @@ msgstr "同一個上層元件下不能有重複的名字"
 msgid "Invalid choice"
 msgstr "無效的選項"
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -363,13 +363,13 @@ msgid "Name"
 msgstr "名稱"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -377,8 +377,8 @@ msgstr "名稱"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -444,12 +444,12 @@ msgstr "伺服器錯誤"
 msgid "An error has been logged by the server."
 msgstr "伺服器紀錄了一個錯誤。"
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "必須是有效的數字"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -661,7 +661,7 @@ msgstr "中文(简体)"
 msgid "Chinese (Traditional)"
 msgstr "中文(繁體)"
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr "背景工作程式檢查失敗"
 
@@ -917,14 +917,14 @@ msgstr "關於InvenTree"
 msgid "Build must be cancelled before it can be deleted"
 msgstr "工單必須被取消才能被刪除"
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr "耗材"
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -993,7 +993,7 @@ msgstr "生產工單代號"
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1023,11 +1023,11 @@ msgstr "這張生產工單對應的上層生產工單"
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1168,12 +1168,13 @@ msgid "User who issued this build order"
 msgstr "發布此生產工單的使用者"
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1205,7 +1206,7 @@ msgstr "製造優先度"
 msgid "Priority of this build order"
 msgstr "此生產工單的優先程度"
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1243,7 +1244,7 @@ msgstr "生產品項與生產工單不符"
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr "數量必須大於零"
@@ -1258,10 +1259,10 @@ msgstr ""
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1425,7 +1426,7 @@ msgid "A list of build outputs must be provided"
 msgstr "必須提供產出清單"
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2032,1365 +2033,1369 @@ msgstr ""
 msgid "Select {name} file to upload"
 msgstr ""
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr ""
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr ""
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr ""
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr ""
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr ""
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr ""
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr ""
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr ""
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr ""
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr ""
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr ""
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr ""
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr ""
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr ""
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr ""
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr ""
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr ""
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr ""
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr ""
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr ""
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr ""
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr ""
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr ""
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr ""
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr ""
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr ""
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr "天"
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr ""
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr ""
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr ""
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr ""
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr ""
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr ""
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr ""
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr ""
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr ""
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr ""
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr "自動備份"
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr "啟動資料庫和媒體文件自動備份"
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr "自動備份間隔"
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr ""
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr ""
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr ""
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr ""
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr ""
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr ""
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr ""
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr ""
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr ""
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr ""
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr ""
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr ""
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr ""
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr ""
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr ""
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr ""
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr ""
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr ""
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr ""
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr ""
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr ""
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr ""
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr ""
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr ""
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr ""
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr ""
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr ""
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr ""
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr ""
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr ""
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr ""
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr ""
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr ""
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr ""
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr ""
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr ""
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr ""
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr ""
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr ""
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr ""
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr ""
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr ""
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr ""
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr ""
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr ""
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr ""
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr ""
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr ""
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr ""
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr ""
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr ""
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr ""
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr ""
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr ""
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr ""
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr ""
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr ""
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr ""
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr ""
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr ""
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr ""
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr ""
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr ""
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr ""
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr ""
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr ""
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr ""
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr ""
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr ""
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr ""
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr ""
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr ""
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr ""
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr ""
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr ""
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr ""
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr ""
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr ""
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr ""
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr ""
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr ""
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr ""
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr ""
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr ""
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr ""
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr ""
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr ""
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr ""
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr ""
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr ""
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr ""
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr ""
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr ""
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr ""
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr ""
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr ""
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr ""
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr ""
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr ""
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr ""
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr ""
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr ""
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr ""
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr ""
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr ""
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr ""
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr ""
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr ""
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr ""
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr ""
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr ""
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr ""
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr ""
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr ""
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr ""
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr ""
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr ""
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr ""
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr ""
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr ""
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr ""
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr ""
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr ""
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr ""
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr ""
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr ""
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr ""
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr ""
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr ""
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr ""
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr ""
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr ""
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr ""
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr ""
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr ""
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr ""
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr ""
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr ""
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr ""
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr ""
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr ""
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr ""
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr ""
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr ""
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr ""
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr ""
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr ""
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr ""
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr ""
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr ""
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr ""
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr ""
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr ""
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr ""
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr ""
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr ""
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr ""
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr ""
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr ""
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr ""
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr ""
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr ""
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr ""
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr ""
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr ""
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr ""
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr ""
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr ""
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr ""
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr ""
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr ""
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr ""
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr ""
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr ""
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr ""
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr ""
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr ""
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr ""
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr ""
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr ""
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr ""
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr ""
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr ""
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr ""
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr ""
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr ""
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr ""
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr ""
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr ""
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr ""
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr ""
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr ""
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr ""
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr ""
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr ""
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr ""
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr ""
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr ""
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr ""
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr ""
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr ""
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr ""
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr ""
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr ""
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr ""
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr ""
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr ""
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr ""
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr ""
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr ""
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr ""
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr ""
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr ""
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr ""
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr ""
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr ""
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr ""
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr ""
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr ""
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr ""
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr ""
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr ""
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr ""
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3398,23 +3403,23 @@ msgstr ""
 msgid "Price"
 msgstr ""
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr ""
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr ""
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr ""
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3423,101 +3428,101 @@ msgstr ""
 msgid "Active"
 msgstr ""
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr ""
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr ""
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr ""
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr ""
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr ""
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr ""
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr ""
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr ""
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr ""
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr ""
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr ""
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr ""
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr ""
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr ""
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr ""
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr ""
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr ""
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr ""
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr ""
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr ""
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr ""
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr ""
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr ""
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3527,31 +3532,31 @@ msgstr ""
 msgid "Image"
 msgstr ""
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr ""
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3806,7 +3811,7 @@ msgstr ""
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3821,7 +3826,7 @@ msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3867,7 +3872,7 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:39 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3893,7 +3898,7 @@ msgstr ""
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3911,7 +3916,7 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3919,7 +3924,7 @@ msgstr ""
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -3936,7 +3941,7 @@ msgid "Supplier part description"
 msgstr ""
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4783,7 +4788,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr ""
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr ""
 
@@ -5478,38 +5483,42 @@ msgstr ""
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr ""
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr ""
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr ""
 
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:34 part/stocktake.py:219
 msgid "Part Description"
 msgstr ""
 
-#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269
+#: part/admin.py:35 part/models.py:824 part/templates/part/part_base.html:269
 #: report/templates/report/inventree_slr_report.html:103
 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339
 #: templates/js/translated/stock.js:2006
 msgid "IPN"
 msgstr ""
 
-#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277
+#: part/admin.py:36 part/models.py:831 part/templates/part/part_base.html:277
 #: report/models.py:189 templates/js/translated/part.js:1231
 #: templates/js/translated/part.js:2345
 msgid "Revision"
 msgstr ""
 
-#: part/admin.py:38 part/admin.py:195 part/models.py:810
+#: part/admin.py:37 part/admin.py:195 part/models.py:810
 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298
 msgid "Keywords"
 msgstr ""
 
+#: part/admin.py:41
+msgid "Part Image"
+msgstr ""
+
 #: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
 msgid "Category ID"
 msgstr ""
@@ -5556,11 +5565,13 @@ msgstr ""
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5577,7 +5588,7 @@ msgstr ""
 msgid "Category Path"
 msgstr ""
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5600,16 +5611,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr ""
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr ""
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr ""
@@ -5660,7 +5673,7 @@ msgstr ""
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr ""
@@ -5694,7 +5707,7 @@ msgid "Default keywords for parts in this category"
 msgstr ""
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr ""
 
@@ -5741,7 +5754,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr ""
 
@@ -5765,10 +5778,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr ""
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5876,151 +5889,159 @@ msgstr ""
 msgid "Sell multiple"
 msgstr ""
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6028,567 +6049,596 @@ msgstr ""
 msgid "Date"
 msgstr ""
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr ""
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr ""
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr ""
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr ""
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr ""
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr ""
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr ""
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr ""
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr ""
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr ""
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr ""
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr ""
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr ""
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr ""
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr ""
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr ""
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr ""
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr ""
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr ""
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr ""
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr ""
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr ""
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr ""
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr ""
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr ""
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr ""
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr ""
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr ""
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr ""
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr ""
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr ""
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr ""
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr ""
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr ""
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr ""
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr ""
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr ""
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr ""
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr ""
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr ""
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr ""
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr ""
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr ""
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr ""
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr ""
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr ""
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr ""
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7062,8 +7112,8 @@ msgstr ""
 msgid "Hide Part Details"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr ""
 
@@ -7078,8 +7128,8 @@ msgstr ""
 msgid "No supplier pricing available"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7147,7 +7197,20 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7155,65 +7218,73 @@ msgstr ""
 msgid "Last Updated"
 msgstr ""
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr ""
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr ""
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9325,7 +9396,7 @@ msgid "Project Codes"
 msgstr ""
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr ""
 
@@ -9366,14 +9437,6 @@ msgstr ""
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr ""
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9397,68 +9460,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10801,10 +10869,6 @@ msgstr ""
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po b/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po
index 96b482a4a5..b5109f3e52 100644
--- a/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po
+++ b/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
+"POT-Creation-Date: 2023-11-21 13:44+0000\n"
 "PO-Revision-Date: 2023-02-28 22:38\n"
 "Last-Translator: \n"
 "Language-Team: Chinese Simplified\n"
@@ -62,7 +62,7 @@ msgstr "输入日期"
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
 #: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -274,7 +274,7 @@ msgstr "附件"
 msgid "Select file to attach"
 msgstr "选择附件"
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
 #: part/admin.py:39 part/models.py:836
@@ -305,10 +305,10 @@ msgstr "注释"
 msgid "File comment"
 msgstr "文件注释"
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -352,16 +352,16 @@ msgstr ""
 msgid "Invalid choice"
 msgstr "选择无效"
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -373,13 +373,13 @@ msgid "Name"
 msgstr "名称"
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -387,8 +387,8 @@ msgstr "名称"
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -456,12 +456,12 @@ msgstr "服务器错误"
 msgid "An error has been logged by the server."
 msgstr "服务器记录了一个错误。"
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr "必须是有效数字"
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -679,7 +679,7 @@ msgstr ""
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr "后台工作人员检查失败"
 
@@ -953,14 +953,14 @@ msgstr "关于 InventTree"
 msgid "Build must be cancelled before it can be deleted"
 msgstr "在删除前必须取消生产"
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr ""
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -1031,7 +1031,7 @@ msgstr "相关生产订单"
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1063,11 +1063,11 @@ msgstr "此次生产匹配的订单"
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1208,12 +1208,13 @@ msgid "User who issued this build order"
 msgstr "发布此生产订单的用户"
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1245,7 +1246,7 @@ msgstr "创建优先级"
 msgid "Priority of this build order"
 msgstr "此构建订单的优先级"
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1287,7 +1288,7 @@ msgstr "生产产出与订单不匹配"
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr "数量必须大于0"
@@ -1306,10 +1307,10 @@ msgstr "生产备注"
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1477,7 +1478,7 @@ msgid "A list of build outputs must be provided"
 msgstr "必须提供生产产出列表"
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2109,1407 +2110,1413 @@ msgstr "{name.title()} 文件"
 msgid "Select {name} file to upload"
 msgstr "选择 {name} 文件上传"
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr "已更新"
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr "最后一次更新时间"
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr ""
 
-#: common/models.py:126
+#: common/models.py:127
 #, fuzzy
 #| msgid "Part description"
 msgid "Project description"
 msgstr "商品描述"
 
-#: common/models.py:648
+#: common/models.py:135
+#, fuzzy
+#| msgid "User or group responsible for this order"
+msgid "User or group responsible for this project"
+msgstr "负责此订单的用户或群组"
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr "设置键值(必须是唯一的 - 大小写不敏感)"
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr "设定值"
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr "选择的值不是一个有效的选项"
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr "值必须是布尔量"
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr "值必须为整数"
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr "关键字必须是唯一的"
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr "无群组"
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr "不允许空域。"
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr "无效的域名: {domain}"
 
-#: common/models.py:1002
+#: common/models.py:1012
 #, fuzzy
 #| msgid "Subcategories"
 msgid "No plugin"
 msgstr "子类别"
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr "需要重启"
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr "设置已更改,需要服务器重启"
 
-#: common/models.py:1076
+#: common/models.py:1086
 #, fuzzy
 #| msgid "Printing Actions"
 msgid "Pending migrations"
 msgstr "打印操作"
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr "服务器实例名称"
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr ""
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr ""
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr ""
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr ""
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr "公司名称"
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr "内部公司名称"
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr ""
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr ""
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr ""
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr ""
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr "天"
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr ""
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr ""
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr ""
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr ""
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr ""
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr ""
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr ""
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr ""
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr ""
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr ""
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr ""
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr ""
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr ""
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr ""
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr ""
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr ""
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr ""
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr ""
 
-#: common/models.py:1249
+#: common/models.py:1259
 #, fuzzy
 #| msgid "Enable barcode scanner support"
 msgid "Enable barcode scanner support in the web interface"
 msgstr "启用条形码扫描支持"
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr ""
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr ""
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr ""
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr ""
 
-#: common/models.py:1273
+#: common/models.py:1283
 #, fuzzy
 #| msgid "Part description"
 msgid "Part Revisions"
 msgstr "商品描述"
 
-#: common/models.py:1274
+#: common/models.py:1284
 #, fuzzy
 #| msgid "Enable internal prices for parts"
 msgid "Enable revision field for Part"
 msgstr "启用内部商品价格"
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr ""
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr ""
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr ""
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr ""
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr ""
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr ""
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr ""
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr ""
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr ""
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr ""
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr ""
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr "模板"
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr "组装"
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr ""
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr "组件"
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr ""
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr "可购买"
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr "商品默认可购买"
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr "可销售"
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr "商品默认可销售"
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr "可追踪"
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr "商品默认可跟踪"
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr "虚拟"
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr "商品默认是虚拟的"
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr "视图中显示导入"
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr "在一些商品视图中显示导入向导"
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr "显示相关商品"
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr ""
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr ""
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr ""
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr ""
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr ""
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr ""
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr ""
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr ""
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1418
+#: common/models.py:1428
 #, fuzzy
 #| msgid "Parameter units"
 msgid "Enforce Parameter Units"
 msgstr "参数单位"
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr ""
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr ""
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr ""
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr ""
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr ""
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr ""
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr ""
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr ""
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr ""
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr ""
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr ""
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr ""
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr "内部价格"
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr "启用内部商品价格"
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr ""
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr ""
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr ""
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr ""
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr ""
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr ""
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr ""
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr ""
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr "调试模式"
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr "在调试模式生成报告(HTML输出)"
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr "页面大小"
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr "PDF 报表默认页面大小"
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr ""
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr "启用生成测试报表"
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr ""
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr ""
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr ""
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr ""
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr ""
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr ""
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr ""
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr ""
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr ""
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr ""
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr "库存到期"
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr "启用库存到期功能"
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr "销售过期库存"
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr "允许销售过期库存"
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr ""
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr ""
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr ""
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr ""
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr "库存所有权控制"
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr ""
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr ""
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1639
+#: common/models.py:1649
 #, fuzzy
 #| msgid "Select Stock Items"
 msgid "Show Installed Stock Items"
 msgstr "选择库存项"
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr ""
 
-#: common/models.py:1653
+#: common/models.py:1663
 #, fuzzy
 #| msgid "Sales Orders"
 msgid "Enable Return Orders"
 msgstr "销售订单"
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr ""
 
-#: common/models.py:1660
+#: common/models.py:1670
 #, fuzzy
 #| msgid "Build Order Reference"
 msgid "Return Order Reference Pattern"
 msgstr "相关生产订单"
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr ""
 
-#: common/models.py:1667
+#: common/models.py:1677
 #, fuzzy
 #| msgid "Complete Build Order"
 msgid "Edit Completed Return Orders"
 msgstr "生产订单完成"
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr ""
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr ""
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr ""
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr ""
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr ""
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr ""
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr ""
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr ""
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr ""
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr ""
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr ""
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr ""
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr ""
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr ""
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr ""
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr ""
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr ""
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr ""
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr ""
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr ""
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr ""
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr ""
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr ""
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr ""
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr ""
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr ""
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr ""
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr ""
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr ""
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr ""
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr ""
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr ""
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr ""
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr ""
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr ""
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr ""
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr ""
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr ""
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr ""
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr ""
 
-#: common/models.py:1836
+#: common/models.py:1846
 #, fuzzy
 #| msgid "Sales Orders"
 msgid "Enable project codes"
 msgstr "销售订单"
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr ""
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr ""
 
-#: common/models.py:1850
+#: common/models.py:1860
 #, fuzzy
 #| msgid "Exclude Location"
 msgid "Exclude External Locations"
 msgstr "排除地点"
 
-#: common/models.py:1851
+#: common/models.py:1861
 #, fuzzy
 #| msgid "Exclude stock items from this selected location"
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr "从该选定的仓储地点排除库存项"
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr ""
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr ""
 
-#: common/models.py:1931
+#: common/models.py:1941
 #, fuzzy
 #| msgid "Build to allocate parts"
 msgid "Hide inactive parts"
 msgstr "生产以分配部件"
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr ""
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr ""
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr ""
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr ""
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr "显示最近商品"
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr "在主页上显示最近商品"
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr ""
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr ""
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr ""
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr ""
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr ""
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr ""
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr ""
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr ""
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr ""
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr ""
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr ""
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr "显示逾期生产"
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr "在主页上显示逾期的生产"
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr ""
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr ""
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr ""
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr ""
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr ""
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr ""
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 #, fuzzy
 #| msgid "Show latest parts on the homepage"
 msgid "Show pending SO shipments on the homepage"
 msgstr "在主页上显示最近商品"
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr ""
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr ""
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr "内嵌标签显示"
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr "在浏览器中显示 PDF 标签,而不是以文件形式下载"
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr ""
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr ""
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr ""
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr "在浏览器中显示 PDF 报告,而不是以文件形式下载"
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr ""
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr ""
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr ""
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr ""
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr ""
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr ""
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr ""
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr ""
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr ""
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr ""
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr ""
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr ""
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr ""
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr ""
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr ""
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr ""
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr ""
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr ""
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr ""
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr ""
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr ""
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr ""
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr ""
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr ""
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr ""
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr ""
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr ""
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr ""
 
-#: common/models.py:2183
+#: common/models.py:2193
 #, fuzzy
 #| msgid "Purchase Orders"
 msgid "Search Return Orders"
 msgstr "采购订单"
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr "搜索预览结果"
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr ""
 
-#: common/models.py:2204
+#: common/models.py:2214
 #, fuzzy
 #| msgid "Search"
 msgid "Regex Search"
 msgstr "搜索"
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr "在表格中显示数量"
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr "在某些表格中显示可用的商品数量"
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr ""
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr ""
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr ""
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr ""
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr ""
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr ""
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr ""
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr ""
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr ""
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr ""
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr ""
 
-#: common/models.py:2278
+#: common/models.py:2288
 #, fuzzy
 #| msgid "Select Label Template"
 msgid "Default part label template"
 msgstr "选择标签模板"
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 #, fuzzy
 #| msgid "stock items selected"
 msgid "Default stock item template"
 msgstr "已选择库存项"
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 #, fuzzy
 #| msgid "No stock location set"
 msgid "Default stock location label template"
 msgstr "未设置仓储地点"
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3517,23 +3524,23 @@ msgstr ""
 msgid "Price"
 msgstr "价格"
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr ""
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr ""
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr ""
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3542,101 +3549,101 @@ msgstr ""
 msgid "Active"
 msgstr ""
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr ""
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr "令牌"
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr ""
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr ""
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr ""
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr ""
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr ""
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr ""
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr ""
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr ""
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr ""
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr ""
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr ""
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr ""
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr ""
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr ""
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr ""
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr ""
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr ""
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr ""
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr ""
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr ""
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr ""
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3646,41 +3653,41 @@ msgstr ""
 msgid "Image"
 msgstr "图片"
 
-#: common/models.py:2908
+#: common/models.py:2918
 #, fuzzy
 #| msgid "Image"
 msgid "Image file"
 msgstr "图片"
 
-#: common/models.py:2951
+#: common/models.py:2961
 #, fuzzy
 #| msgid "Must be a valid number"
 msgid "Unit name must be a valid identifier"
 msgstr "必须是有效数字"
 
-#: common/models.py:2973
+#: common/models.py:2983
 #, fuzzy
 #| msgid "Part name"
 msgid "Unit name"
 msgstr "商品名称"
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 #, fuzzy
 #| msgid "Optional Items"
 msgid "Optional unit symbol"
 msgstr "可选项目"
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 #, fuzzy
 #| msgid "Destination"
 msgid "Definition"
 msgstr "目的地"
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3955,7 +3962,7 @@ msgstr "选择商品"
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3970,7 +3977,7 @@ msgid "Select manufacturer"
 msgstr "选择制造商"
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -4016,7 +4023,7 @@ msgid "Parameter value"
 msgstr "参数值"
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:40 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -4044,7 +4051,7 @@ msgstr ""
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -4062,7 +4069,7 @@ msgid "Select supplier"
 msgstr "选择供应商"
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -4070,7 +4077,7 @@ msgstr "选择供应商"
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -4087,7 +4094,7 @@ msgid "Supplier part description"
 msgstr "供应商商品描述"
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4978,7 +4985,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr ""
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr "销售价格"
 
@@ -5709,12 +5716,12 @@ msgstr ""
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr ""
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr "商品ID"
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr ""
@@ -5787,11 +5794,13 @@ msgstr ""
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5808,7 +5817,7 @@ msgstr ""
 msgid "Category Path"
 msgstr "类别路径"
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5831,16 +5840,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr ""
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr ""
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr ""
@@ -5891,7 +5902,7 @@ msgstr "可用库存"
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr "商品类别"
@@ -5925,7 +5936,7 @@ msgid "Default keywords for parts in this category"
 msgstr "此类别商品的默认关键字"
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr ""
 
@@ -5973,7 +5984,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr "商品名称"
 
@@ -5999,10 +6010,10 @@ msgstr "描述 (可选)"
 msgid "Part keywords to improve visibility in search results"
 msgstr "提高搜索结果可见性的关键字"
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -6112,151 +6123,159 @@ msgstr ""
 msgid "Sell multiple"
 msgstr ""
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6264,581 +6283,614 @@ msgstr ""
 msgid "Date"
 msgstr ""
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr ""
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr ""
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr ""
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr ""
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr ""
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr ""
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr ""
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr ""
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr ""
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr ""
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 #, fuzzy
 #| msgid "Key string must be unique"
 msgid "Choices must be unique"
 msgstr "关键字必须是唯一的"
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr ""
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr ""
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 #, fuzzy
 #| msgid "Invalid choice for parent build"
 msgid "Invalid choice for parameter value"
 msgstr "上级生产选项无效"
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr ""
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr "参数模板"
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr ""
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr "默认值"
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr ""
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr ""
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr ""
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr ""
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr ""
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr "BOM项"
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr ""
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr ""
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr ""
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr ""
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr ""
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr ""
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr ""
 
-#: part/models.py:3786
+#: part/models.py:3807
 #, fuzzy
 #| msgid "Some stock items have been overallocated"
 msgid "This BOM item has been validated"
 msgstr "一些库存项已被过度分配"
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr ""
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr ""
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr ""
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr ""
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr ""
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr ""
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 #, fuzzy
 #| msgid "Rejected"
 msgid "No parts selected"
 msgstr "已拒绝"
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 #, fuzzy
 #| msgid "Set category"
 msgid "Select category"
 msgstr "设置类别"
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr ""
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr ""
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 #, fuzzy
 #| msgid "Company Notes"
 msgid "Copy Notes"
 msgstr "公司备注"
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr ""
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr "复制部件"
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr "复制类别参数"
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 #, fuzzy
 #| msgid "Exclude stock items from this selected location"
 msgid "Exclude stock items in external locations"
 msgstr "从该选定的仓储地点排除库存项"
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr ""
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+#, fuzzy
+#| msgid "Uses default currency"
+msgid "Minimum price currency"
+msgstr "使用默认货币"
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+#, fuzzy
+#| msgid "Uses default currency"
+msgid "Maximum price currency"
+msgstr "使用默认货币"
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr ""
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr ""
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr ""
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr ""
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr ""
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr ""
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr ""
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7318,8 +7370,8 @@ msgstr ""
 msgid "Hide Part Details"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr ""
 
@@ -7334,8 +7386,8 @@ msgstr ""
 msgid "No supplier pricing available"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7403,7 +7455,22 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+#, fuzzy
+#| msgid "Part Pricing"
+msgid "Override Part Pricing"
+msgstr "商品价格"
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr "编辑"
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7411,65 +7478,77 @@ msgstr ""
 msgid "Last Updated"
 msgstr ""
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr ""
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+#, fuzzy
+#| msgid "Print actions"
+msgid "Pricing Overrides"
+msgstr "打印操作"
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr ""
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+#, fuzzy
+#| msgid "Part Pricing"
+msgid "Update Pricing"
+msgstr "商品价格"
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9694,7 +9773,7 @@ msgid "Project Codes"
 msgstr "商品二维码"
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 #, fuzzy
 #| msgid "New Parameter"
 msgid "New Project Code"
@@ -9739,14 +9818,6 @@ msgstr ""
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr "编辑"
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9778,84 +9849,89 @@ msgstr "新建客户"
 msgid "No project codes found"
 msgstr "无指定参数"
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 #, fuzzy
 #| msgid "Edit Parameter"
 msgid "Edit Project Code"
 msgstr "编辑参数"
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 #, fuzzy
 #| msgid "Delete Parameter"
 msgid "Delete Project Code"
 msgstr "删除参数"
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr "未找到类别参数模板"
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr "编辑模板"
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr "删除模板"
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 #, fuzzy
 #| msgid "Delete Category Parameter Template"
 msgid "Edit Category Parameter Template"
 msgstr "删除类别参数模板"
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr "删除类别参数模板"
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr "创建类别参数模板"
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 #, fuzzy
 #| msgid "No stock location set"
 msgid "No stock location types found"
 msgstr "未设置仓储地点"
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 #, fuzzy
 #| msgid "Location actions"
 msgid "Location count"
 msgstr "仓储地操作"
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 #, fuzzy
 #| msgid "Edit location"
 msgid "Edit Location Type"
 msgstr "编辑仓储地"
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 #, fuzzy
 #| msgid "Delete location"
 msgid "Delete Location type"
 msgstr "删除仓储地"
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 #, fuzzy
 #| msgid "Delete location"
 msgid "Delete Location Type"
 msgstr "删除仓储地"
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 #, fuzzy
 #| msgid "New Location"
@@ -11254,10 +11330,6 @@ msgstr ""
 msgid "No user information"
 msgstr "没有用户信息"
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/InvenTree/locale/zh_hant/LC_MESSAGES/django.po b/InvenTree/locale/zh_hant/LC_MESSAGES/django.po
index 356474be21..59158e5f50 100644
--- a/InvenTree/locale/zh_hant/LC_MESSAGES/django.po
+++ b/InvenTree/locale/zh_hant/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-20 21:27+0000\n"
+"POT-Creation-Date: 2023-11-21 13:44+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"
@@ -58,7 +58,7 @@ msgstr ""
 #: order/models.py:1104 order/templates/order/po_sidebar.html:11
 #: order/templates/order/return_order_sidebar.html:9
 #: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:2977 part/templates/part/part_sidebar.html:63
+#: part/models.py:2998 part/templates/part/part_sidebar.html:63
 #: report/templates/report/inventree_build_order_base.html:172
 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325
 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
@@ -265,7 +265,7 @@ msgstr ""
 msgid "Select file to attach"
 msgstr ""
 
-#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128
+#: InvenTree/models.py:482 common/models.py:2877 company/models.py:128
 #: company/models.py:386 company/models.py:440 company/models.py:719
 #: order/models.py:234 order/models.py:1108 order/models.py:1466
 #: part/admin.py:39 part/models.py:836
@@ -296,10 +296,10 @@ msgstr ""
 msgid "File comment"
 msgstr ""
 
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327
-#: common/models.py:2328 common/models.py:2540 common/models.py:2541
-#: common/models.py:2797 common/models.py:2798 part/models.py:2985
-#: part/models.py:3070 part/models.py:3149 part/models.py:3169
+#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2337
+#: common/models.py:2338 common/models.py:2550 common/models.py:2551
+#: common/models.py:2807 common/models.py:2808 part/models.py:3006
+#: part/models.py:3091 part/models.py:3170 part/models.py:3190
 #: plugin/models.py:229 plugin/models.py:230
 #: report/templates/report/inventree_test_report_base.html:105
 #: templates/js/translated/stock.js:3007 users/models.py:102
@@ -343,16 +343,16 @@ msgstr ""
 msgid "Invalid choice"
 msgstr ""
 
-#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526
-#: common/models.py:2972 company/models.py:524 label/models.py:116
-#: part/models.py:782 part/models.py:3367 plugin/models.py:42
+#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2536
+#: common/models.py:2982 company/models.py:524 label/models.py:116
+#: part/models.py:782 part/models.py:3388 plugin/models.py:42
 #: report/models.py:170 stock/models.py:71 stock/models.py:72
 #: templates/InvenTree/settings/mixins/urls.html:13
 #: templates/InvenTree/settings/notifications.html:17
 #: templates/InvenTree/settings/plugin.html:74
 #: templates/InvenTree/settings/plugin_settings.html:22
 #: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
+#: templates/InvenTree/settings/settings_staff_js.html:446
 #: templates/js/translated/company.js:666
 #: templates/js/translated/company.js:714
 #: templates/js/translated/company.js:903
@@ -364,13 +364,13 @@ msgid "Name"
 msgstr ""
 
 #: InvenTree/models.py:793 build/models.py:175
-#: build/templates/build/detail.html:24 common/models.py:125
+#: build/templates/build/detail.html:24 common/models.py:126
 #: company/models.py:446 company/models.py:725
 #: company/templates/company/company_base.html:71
 #: company/templates/company/manufacturer_part.html:75
 #: company/templates/company/supplier_part.html:107 label/models.py:123
 #: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272
-#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82
+#: part/models.py:804 part/models.py:3404 part/templates/part/category.html:82
 #: part/templates/part/part_base.html:170
 #: part/templates/part/part_scheduling.html:12 report/models.py:183
 #: report/models.py:611 report/models.py:654
@@ -378,8 +378,8 @@ msgstr ""
 #: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125
 #: templates/InvenTree/settings/notifications.html:19
 #: templates/InvenTree/settings/plugin_settings.html:27
-#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
+#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:451
 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
 #: templates/js/translated/build.js:2127 templates/js/translated/company.js:518
 #: templates/js/translated/company.js:1320
@@ -445,12 +445,12 @@ msgstr ""
 msgid "An error has been logged by the server."
 msgstr ""
 
-#: InvenTree/serializers.py:61 part/models.py:3872
+#: InvenTree/serializers.py:61 part/models.py:3893
 msgid "Must be a valid number"
 msgstr ""
 
 #: InvenTree/serializers.py:90 company/models.py:150
-#: company/templates/company/company_base.html:106 part/models.py:2824
+#: company/templates/company/company_base.html:106 part/models.py:2833
 #: templates/InvenTree/settings/settings_staff_js.html:44
 #: templates/currency_data.html:5
 msgid "Currency"
@@ -664,7 +664,7 @@ msgstr ""
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: InvenTree/status.py:68 part/serializers.py:1002
+#: InvenTree/status.py:68 part/serializers.py:1006
 msgid "Background worker check failed"
 msgstr ""
 
@@ -920,14 +920,14 @@ msgstr ""
 msgid "Build must be cancelled before it can be deleted"
 msgstr ""
 
-#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3785 templates/js/translated/bom.js:997
 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511
 #: templates/js/translated/table_filters.js:190
 #: templates/js/translated/table_filters.js:579
 msgid "Consumable"
 msgstr ""
 
-#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3779 part/templates/part/upload_bom.html:58
 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
 #: templates/js/translated/build.js:2520
 #: templates/js/translated/table_filters.js:186
@@ -996,7 +996,7 @@ msgstr ""
 
 #: build/models.py:167 order/models.py:363 order/models.py:776
 #: order/models.py:1102 order/models.py:1738 part/admin.py:274
-#: part/models.py:3773 part/templates/part/upload_bom.html:54
+#: part/models.py:3794 part/templates/part/upload_bom.html:54
 #: report/templates/report/inventree_bill_of_materials_report.html:139
 #: report/templates/report/inventree_po_report_base.html:28
 #: report/templates/report/inventree_return_order_report_base.html:26
@@ -1026,11 +1026,11 @@ msgstr ""
 #: build/models.py:192 build/templates/build/build_base.html:97
 #: build/templates/build/detail.html:29 company/models.py:907
 #: order/models.py:1209 order/models.py:1324 order/models.py:1325
-#: part/models.py:365 part/models.py:2837 part/models.py:2951
-#: part/models.py:3088 part/models.py:3107 part/models.py:3126
-#: part/models.py:3147 part/models.py:3239 part/models.py:3513
-#: part/models.py:3635 part/models.py:3738 part/models.py:4061
-#: part/serializers.py:961 part/serializers.py:1394
+#: part/models.py:365 part/models.py:2846 part/models.py:2972
+#: part/models.py:3109 part/models.py:3128 part/models.py:3147
+#: part/models.py:3168 part/models.py:3260 part/models.py:3534
+#: part/models.py:3656 part/models.py:3759 part/models.py:4082
+#: part/serializers.py:965 part/serializers.py:1452
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/upload_bom.html:52
@@ -1171,12 +1171,13 @@ msgid "User who issued this build order"
 msgstr ""
 
 #: build/models.py:295 build/templates/build/build_base.html:204
-#: build/templates/build/detail.html:122 order/models.py:256
-#: order/templates/order/order_base.html:217
+#: build/templates/build/detail.html:122 common/models.py:134
+#: order/models.py:256 order/templates/order/order_base.html:217
 #: order/templates/order/return_order_base.html:188
 #: order/templates/order/sales_order_base.html:228 part/models.py:981
 #: part/templates/part/part_base.html:390
 #: report/templates/report/inventree_build_order_base.html:158
+#: templates/InvenTree/settings/settings_staff_js.html:150
 #: templates/js/translated/build.js:2207
 #: templates/js/translated/purchase_order.js:1757
 #: templates/js/translated/return_order.js:359
@@ -1208,7 +1209,7 @@ msgstr ""
 msgid "Priority of this build order"
 msgstr ""
 
-#: build/models.py:316 common/models.py:118 order/admin.py:17
+#: build/models.py:316 common/models.py:119 order/admin.py:17
 #: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
 #: templates/js/translated/build.js:2132
 #: templates/js/translated/purchase_order.js:1704
@@ -1246,7 +1247,7 @@ msgstr ""
 
 #: build/models.py:855 build/serializers.py:218 build/serializers.py:257
 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389
-#: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558
+#: order/serializers.py:511 part/serializers.py:1277 part/serializers.py:1616
 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
 msgid "Quantity must be greater than zero"
 msgstr ""
@@ -1261,10 +1262,10 @@ msgstr ""
 
 #: build/models.py:1288 build/models.py:1546 build/serializers.py:205
 #: build/serializers.py:242 build/templates/build/build_base.html:102
-#: build/templates/build/detail.html:34 common/models.py:2349
+#: build/templates/build/detail.html:34 common/models.py:2359
 #: order/models.py:1089 order/models.py:1660 order/serializers.py:1267
 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2964 part/models.py:3754
+#: part/forms.py:47 part/models.py:2985 part/models.py:3775
 #: part/templates/part/part_pricing.html:16
 #: part/templates/part/upload_bom.html:53
 #: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1428,7 +1429,7 @@ msgid "A list of build outputs must be provided"
 msgstr ""
 
 #: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497
-#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:973
+#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:977
 #: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669
 #: stock/serializers.py:1150 stock/serializers.py:1421
 #: stock/templates/stock/item_base.html:394
@@ -2035,1365 +2036,1369 @@ msgstr ""
 msgid "Select {name} file to upload"
 msgstr ""
 
-#: common/models.py:71
+#: common/models.py:72
 msgid "Updated"
 msgstr ""
 
-#: common/models.py:72
+#: common/models.py:73
 msgid "Timestamp of last update"
 msgstr ""
 
-#: common/models.py:119
+#: common/models.py:120
 msgid "Unique project code"
 msgstr ""
 
-#: common/models.py:126
+#: common/models.py:127
 msgid "Project description"
 msgstr ""
 
-#: common/models.py:648
+#: common/models.py:135
+msgid "User or group responsible for this project"
+msgstr ""
+
+#: common/models.py:658
 msgid "Settings key (must be unique - case insensitive)"
 msgstr ""
 
-#: common/models.py:650
+#: common/models.py:660
 msgid "Settings value"
 msgstr ""
 
-#: common/models.py:691
+#: common/models.py:701
 msgid "Chosen value is not a valid option"
 msgstr ""
 
-#: common/models.py:708
+#: common/models.py:718
 msgid "Value must be a boolean value"
 msgstr ""
 
-#: common/models.py:719
+#: common/models.py:729
 msgid "Value must be an integer value"
 msgstr ""
 
-#: common/models.py:758
+#: common/models.py:768
 msgid "Key string must be unique"
 msgstr ""
 
-#: common/models.py:963
+#: common/models.py:973
 msgid "No group"
 msgstr ""
 
-#: common/models.py:988
+#: common/models.py:998
 msgid "An empty domain is not allowed."
 msgstr ""
 
-#: common/models.py:990
+#: common/models.py:1000
 #, python-brace-format
 msgid "Invalid domain name: {domain}"
 msgstr ""
 
-#: common/models.py:1002
+#: common/models.py:1012
 msgid "No plugin"
 msgstr ""
 
-#: common/models.py:1068
+#: common/models.py:1078
 msgid "Restart required"
 msgstr ""
 
-#: common/models.py:1069
+#: common/models.py:1079
 msgid "A setting has been changed which requires a server restart"
 msgstr ""
 
-#: common/models.py:1076
+#: common/models.py:1086
 msgid "Pending migrations"
 msgstr ""
 
-#: common/models.py:1077
+#: common/models.py:1087
 msgid "Number of pending database migrations"
 msgstr ""
 
-#: common/models.py:1083
+#: common/models.py:1093
 msgid "Server Instance Name"
 msgstr ""
 
-#: common/models.py:1085
+#: common/models.py:1095
 msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:1090
+#: common/models.py:1100
 msgid "Use instance name"
 msgstr ""
 
-#: common/models.py:1091
+#: common/models.py:1101
 msgid "Use the instance name in the title-bar"
 msgstr ""
 
-#: common/models.py:1097
+#: common/models.py:1107
 msgid "Restrict showing `about`"
 msgstr ""
 
-#: common/models.py:1098
+#: common/models.py:1108
 msgid "Show the `about` modal only to superusers"
 msgstr ""
 
-#: common/models.py:1104 company/models.py:101 company/models.py:102
+#: common/models.py:1114 company/models.py:101 company/models.py:102
 msgid "Company name"
 msgstr ""
 
-#: common/models.py:1105
+#: common/models.py:1115
 msgid "Internal company name"
 msgstr ""
 
-#: common/models.py:1110
+#: common/models.py:1120
 msgid "Base URL"
 msgstr ""
 
-#: common/models.py:1111
+#: common/models.py:1121
 msgid "Base URL for server instance"
 msgstr ""
 
-#: common/models.py:1118
+#: common/models.py:1128
 msgid "Default Currency"
 msgstr ""
 
-#: common/models.py:1119
+#: common/models.py:1129
 msgid "Select base currency for pricing calculations"
 msgstr ""
 
-#: common/models.py:1126
+#: common/models.py:1136
 msgid "Currency Update Interval"
 msgstr ""
 
-#: common/models.py:1127
+#: common/models.py:1137
 msgid "How often to update exchange rates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1129 common/models.py:1193 common/models.py:1211
-#: common/models.py:1218 common/models.py:1229 common/models.py:1240
-#: common/models.py:1471 common/models.py:1495 common/models.py:1614
-#: common/models.py:1870
+#: common/models.py:1139 common/models.py:1203 common/models.py:1221
+#: common/models.py:1228 common/models.py:1239 common/models.py:1250
+#: common/models.py:1481 common/models.py:1505 common/models.py:1624
+#: common/models.py:1880
 msgid "days"
 msgstr ""
 
-#: common/models.py:1137
+#: common/models.py:1147
 msgid "Currency Update Plugin"
 msgstr ""
 
-#: common/models.py:1138
+#: common/models.py:1148
 msgid "Currency update plugin to use"
 msgstr ""
 
-#: common/models.py:1144
+#: common/models.py:1154
 msgid "Download from URL"
 msgstr ""
 
-#: common/models.py:1145
+#: common/models.py:1155
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:1151
+#: common/models.py:1161
 msgid "Download Size Limit"
 msgstr ""
 
-#: common/models.py:1152
+#: common/models.py:1162
 msgid "Maximum allowable download size for remote image"
 msgstr ""
 
-#: common/models.py:1163
+#: common/models.py:1173
 msgid "User-agent used to download from URL"
 msgstr ""
 
-#: common/models.py:1164
+#: common/models.py:1174
 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
 msgstr ""
 
-#: common/models.py:1169
+#: common/models.py:1179
 msgid "Require confirm"
 msgstr ""
 
-#: common/models.py:1170
+#: common/models.py:1180
 msgid "Require explicit user confirmation for certain action."
 msgstr ""
 
-#: common/models.py:1176
+#: common/models.py:1186
 msgid "Tree Depth"
 msgstr ""
 
-#: common/models.py:1177
+#: common/models.py:1187
 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
 msgstr ""
 
-#: common/models.py:1186
+#: common/models.py:1196
 msgid "Update Check Interval"
 msgstr ""
 
-#: common/models.py:1187
+#: common/models.py:1197
 msgid "How often to check for updates (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1197
+#: common/models.py:1207
 msgid "Automatic Backup"
 msgstr ""
 
-#: common/models.py:1198
+#: common/models.py:1208
 msgid "Enable automatic backup of database and media files"
 msgstr ""
 
-#: common/models.py:1204
+#: common/models.py:1214
 msgid "Auto Backup Interval"
 msgstr ""
 
-#: common/models.py:1205
+#: common/models.py:1215
 msgid "Specify number of days between automated backup events"
 msgstr ""
 
-#: common/models.py:1215
+#: common/models.py:1225
 msgid "Task Deletion Interval"
 msgstr ""
 
-#: common/models.py:1216
+#: common/models.py:1226
 msgid "Background task results will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1226
+#: common/models.py:1236
 msgid "Error Log Deletion Interval"
 msgstr ""
 
-#: common/models.py:1227
+#: common/models.py:1237
 msgid "Error logs will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1237
+#: common/models.py:1247
 msgid "Notification Deletion Interval"
 msgstr ""
 
-#: common/models.py:1238
+#: common/models.py:1248
 msgid "User notifications will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1248 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1258 templates/InvenTree/settings/sidebar.html:31
 msgid "Barcode Support"
 msgstr ""
 
-#: common/models.py:1249
+#: common/models.py:1259
 msgid "Enable barcode scanner support in the web interface"
 msgstr ""
 
-#: common/models.py:1255
+#: common/models.py:1265
 msgid "Barcode Input Delay"
 msgstr ""
 
-#: common/models.py:1256
+#: common/models.py:1266
 msgid "Barcode input processing delay time"
 msgstr ""
 
-#: common/models.py:1266
+#: common/models.py:1276
 msgid "Barcode Webcam Support"
 msgstr ""
 
-#: common/models.py:1267
+#: common/models.py:1277
 msgid "Allow barcode scanning via webcam in browser"
 msgstr ""
 
-#: common/models.py:1273
+#: common/models.py:1283
 msgid "Part Revisions"
 msgstr ""
 
-#: common/models.py:1274
+#: common/models.py:1284
 msgid "Enable revision field for Part"
 msgstr ""
 
-#: common/models.py:1280
+#: common/models.py:1290
 msgid "IPN Regex"
 msgstr ""
 
-#: common/models.py:1281
+#: common/models.py:1291
 msgid "Regular expression pattern for matching Part IPN"
 msgstr ""
 
-#: common/models.py:1285
+#: common/models.py:1295
 msgid "Allow Duplicate IPN"
 msgstr ""
 
-#: common/models.py:1286
+#: common/models.py:1296
 msgid "Allow multiple parts to share the same IPN"
 msgstr ""
 
-#: common/models.py:1292
+#: common/models.py:1302
 msgid "Allow Editing IPN"
 msgstr ""
 
-#: common/models.py:1293
+#: common/models.py:1303
 msgid "Allow changing the IPN value while editing a part"
 msgstr ""
 
-#: common/models.py:1299
+#: common/models.py:1309
 msgid "Copy Part BOM Data"
 msgstr ""
 
-#: common/models.py:1300
+#: common/models.py:1310
 msgid "Copy BOM data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1306
+#: common/models.py:1316
 msgid "Copy Part Parameter Data"
 msgstr ""
 
-#: common/models.py:1307
+#: common/models.py:1317
 msgid "Copy parameter data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1313
+#: common/models.py:1323
 msgid "Copy Part Test Data"
 msgstr ""
 
-#: common/models.py:1314
+#: common/models.py:1324
 msgid "Copy test data by default when duplicating a part"
 msgstr ""
 
-#: common/models.py:1320
+#: common/models.py:1330
 msgid "Copy Category Parameter Templates"
 msgstr ""
 
-#: common/models.py:1321
+#: common/models.py:1331
 msgid "Copy category parameter templates when creating a part"
 msgstr ""
 
-#: common/models.py:1327 part/admin.py:55 part/models.py:3518
+#: common/models.py:1337 part/admin.py:55 part/models.py:3539
 #: report/models.py:176 templates/js/translated/table_filters.js:139
 #: templates/js/translated/table_filters.js:763
 msgid "Template"
 msgstr ""
 
-#: common/models.py:1328
+#: common/models.py:1338
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932
+#: common/models.py:1344 part/admin.py:51 part/admin.py:279 part/models.py:932
 #: templates/js/translated/bom.js:1633
 #: templates/js/translated/table_filters.js:330
 #: templates/js/translated/table_filters.js:717
 msgid "Assembly"
 msgstr ""
 
-#: common/models.py:1335
+#: common/models.py:1345
 msgid "Parts can be assembled from other components by default"
 msgstr ""
 
-#: common/models.py:1341 part/admin.py:52 part/models.py:938
+#: common/models.py:1351 part/admin.py:52 part/models.py:938
 #: templates/js/translated/table_filters.js:725
 msgid "Component"
 msgstr ""
 
-#: common/models.py:1342
+#: common/models.py:1352
 msgid "Parts can be used as sub-components by default"
 msgstr ""
 
-#: common/models.py:1348 part/admin.py:53 part/models.py:949
+#: common/models.py:1358 part/admin.py:53 part/models.py:949
 msgid "Purchaseable"
 msgstr ""
 
-#: common/models.py:1349
+#: common/models.py:1359
 msgid "Parts are purchaseable by default"
 msgstr ""
 
-#: common/models.py:1355 part/admin.py:54 part/models.py:954
+#: common/models.py:1365 part/admin.py:54 part/models.py:954
 #: templates/js/translated/table_filters.js:751
 msgid "Salable"
 msgstr ""
 
-#: common/models.py:1356
+#: common/models.py:1366
 msgid "Parts are salable by default"
 msgstr ""
 
-#: common/models.py:1362 part/admin.py:56 part/models.py:944
+#: common/models.py:1372 part/admin.py:56 part/models.py:944
 #: templates/js/translated/table_filters.js:147
 #: templates/js/translated/table_filters.js:223
 #: templates/js/translated/table_filters.js:767
 msgid "Trackable"
 msgstr ""
 
-#: common/models.py:1363
+#: common/models.py:1373
 msgid "Parts are trackable by default"
 msgstr ""
 
-#: common/models.py:1369 part/admin.py:57 part/models.py:964
+#: common/models.py:1379 part/admin.py:57 part/models.py:964
 #: part/templates/part/part_base.html:154
 #: templates/js/translated/table_filters.js:143
 #: templates/js/translated/table_filters.js:771
 msgid "Virtual"
 msgstr ""
 
-#: common/models.py:1370
+#: common/models.py:1380
 msgid "Parts are virtual by default"
 msgstr ""
 
-#: common/models.py:1376
+#: common/models.py:1386
 msgid "Show Import in Views"
 msgstr ""
 
-#: common/models.py:1377
+#: common/models.py:1387
 msgid "Display the import wizard in some part views"
 msgstr ""
 
-#: common/models.py:1383
+#: common/models.py:1393
 msgid "Show related parts"
 msgstr ""
 
-#: common/models.py:1384
+#: common/models.py:1394
 msgid "Display related parts for a part"
 msgstr ""
 
-#: common/models.py:1390
+#: common/models.py:1400
 msgid "Initial Stock Data"
 msgstr ""
 
-#: common/models.py:1391
+#: common/models.py:1401
 msgid "Allow creation of initial stock when adding a new part"
 msgstr ""
 
-#: common/models.py:1397 templates/js/translated/part.js:107
+#: common/models.py:1407 templates/js/translated/part.js:107
 msgid "Initial Supplier Data"
 msgstr ""
 
-#: common/models.py:1398
+#: common/models.py:1408
 msgid "Allow creation of initial supplier data when adding a new part"
 msgstr ""
 
-#: common/models.py:1404
+#: common/models.py:1414
 msgid "Part Name Display Format"
 msgstr ""
 
-#: common/models.py:1405
+#: common/models.py:1415
 msgid "Format to display the part name"
 msgstr ""
 
-#: common/models.py:1412
+#: common/models.py:1422
 msgid "Part Category Default Icon"
 msgstr ""
 
-#: common/models.py:1413
+#: common/models.py:1423
 msgid "Part category default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1418
+#: common/models.py:1428
 msgid "Enforce Parameter Units"
 msgstr ""
 
-#: common/models.py:1419
+#: common/models.py:1429
 msgid "If units are provided, parameter values must match the specified units"
 msgstr ""
 
-#: common/models.py:1425
+#: common/models.py:1435
 msgid "Minimum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1426
+#: common/models.py:1436
 msgid "Minimum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1436
+#: common/models.py:1446
 msgid "Maximum Pricing Decimal Places"
 msgstr ""
 
-#: common/models.py:1437
+#: common/models.py:1447
 msgid "Maximum number of decimal places to display when rendering pricing data"
 msgstr ""
 
-#: common/models.py:1447
+#: common/models.py:1457
 msgid "Use Supplier Pricing"
 msgstr ""
 
-#: common/models.py:1448
+#: common/models.py:1458
 msgid "Include supplier price breaks in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1454
+#: common/models.py:1464
 msgid "Purchase History Override"
 msgstr ""
 
-#: common/models.py:1455
+#: common/models.py:1465
 msgid "Historical purchase order pricing overrides supplier price breaks"
 msgstr ""
 
-#: common/models.py:1461
+#: common/models.py:1471
 msgid "Use Stock Item Pricing"
 msgstr ""
 
-#: common/models.py:1462
+#: common/models.py:1472
 msgid "Use pricing from manually entered stock data for pricing calculations"
 msgstr ""
 
-#: common/models.py:1468
+#: common/models.py:1478
 msgid "Stock Item Pricing Age"
 msgstr ""
 
-#: common/models.py:1469
+#: common/models.py:1479
 msgid "Exclude stock items older than this number of days from pricing calculations"
 msgstr ""
 
-#: common/models.py:1479
+#: common/models.py:1489
 msgid "Use Variant Pricing"
 msgstr ""
 
-#: common/models.py:1480
+#: common/models.py:1490
 msgid "Include variant pricing in overall pricing calculations"
 msgstr ""
 
-#: common/models.py:1486
+#: common/models.py:1496
 msgid "Active Variants Only"
 msgstr ""
 
-#: common/models.py:1487
+#: common/models.py:1497
 msgid "Only use active variant parts for calculating variant pricing"
 msgstr ""
 
-#: common/models.py:1493
+#: common/models.py:1503
 msgid "Pricing Rebuild Interval"
 msgstr ""
 
-#: common/models.py:1494
+#: common/models.py:1504
 msgid "Number of days before part pricing is automatically updated"
 msgstr ""
 
-#: common/models.py:1504
+#: common/models.py:1514
 msgid "Internal Prices"
 msgstr ""
 
-#: common/models.py:1505
+#: common/models.py:1515
 msgid "Enable internal prices for parts"
 msgstr ""
 
-#: common/models.py:1511
+#: common/models.py:1521
 msgid "Internal Price Override"
 msgstr ""
 
-#: common/models.py:1512
+#: common/models.py:1522
 msgid "If available, internal prices override price range calculations"
 msgstr ""
 
-#: common/models.py:1518
+#: common/models.py:1528
 msgid "Enable label printing"
 msgstr ""
 
-#: common/models.py:1519
+#: common/models.py:1529
 msgid "Enable label printing from the web interface"
 msgstr ""
 
-#: common/models.py:1525
+#: common/models.py:1535
 msgid "Label Image DPI"
 msgstr ""
 
-#: common/models.py:1526
+#: common/models.py:1536
 msgid "DPI resolution when generating image files to supply to label printing plugins"
 msgstr ""
 
-#: common/models.py:1535
+#: common/models.py:1545
 msgid "Enable Reports"
 msgstr ""
 
-#: common/models.py:1536
+#: common/models.py:1546
 msgid "Enable generation of reports"
 msgstr ""
 
-#: common/models.py:1542 templates/stats.html:25
+#: common/models.py:1552 templates/stats.html:25
 msgid "Debug Mode"
 msgstr ""
 
-#: common/models.py:1543
+#: common/models.py:1553
 msgid "Generate reports in debug mode (HTML output)"
 msgstr ""
 
-#: common/models.py:1549 plugin/builtin/labels/label_sheet.py:28
+#: common/models.py:1559 plugin/builtin/labels/label_sheet.py:28
 #: report/models.py:197
 msgid "Page Size"
 msgstr ""
 
-#: common/models.py:1550
+#: common/models.py:1560
 msgid "Default page size for PDF reports"
 msgstr ""
 
-#: common/models.py:1556
+#: common/models.py:1566
 msgid "Enable Test Reports"
 msgstr ""
 
-#: common/models.py:1557
+#: common/models.py:1567
 msgid "Enable generation of test reports"
 msgstr ""
 
-#: common/models.py:1563
+#: common/models.py:1573
 msgid "Attach Test Reports"
 msgstr ""
 
-#: common/models.py:1564
+#: common/models.py:1574
 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
 msgstr ""
 
-#: common/models.py:1570
+#: common/models.py:1580
 msgid "Globally Unique Serials"
 msgstr ""
 
-#: common/models.py:1571
+#: common/models.py:1581
 msgid "Serial numbers for stock items must be globally unique"
 msgstr ""
 
-#: common/models.py:1577
+#: common/models.py:1587
 msgid "Autofill Serial Numbers"
 msgstr ""
 
-#: common/models.py:1578
+#: common/models.py:1588
 msgid "Autofill serial numbers in forms"
 msgstr ""
 
-#: common/models.py:1584
+#: common/models.py:1594
 msgid "Delete Depleted Stock"
 msgstr ""
 
-#: common/models.py:1585
+#: common/models.py:1595
 msgid "Determines default behaviour when a stock item is depleted"
 msgstr ""
 
-#: common/models.py:1591
+#: common/models.py:1601
 msgid "Batch Code Template"
 msgstr ""
 
-#: common/models.py:1592
+#: common/models.py:1602
 msgid "Template for generating default batch codes for stock items"
 msgstr ""
 
-#: common/models.py:1597
+#: common/models.py:1607
 msgid "Stock Expiry"
 msgstr ""
 
-#: common/models.py:1598
+#: common/models.py:1608
 msgid "Enable stock expiry functionality"
 msgstr ""
 
-#: common/models.py:1604
+#: common/models.py:1614
 msgid "Sell Expired Stock"
 msgstr ""
 
-#: common/models.py:1605
+#: common/models.py:1615
 msgid "Allow sale of expired stock"
 msgstr ""
 
-#: common/models.py:1611
+#: common/models.py:1621
 msgid "Stock Stale Time"
 msgstr ""
 
-#: common/models.py:1612
+#: common/models.py:1622
 msgid "Number of days stock items are considered stale before expiring"
 msgstr ""
 
-#: common/models.py:1619
+#: common/models.py:1629
 msgid "Build Expired Stock"
 msgstr ""
 
-#: common/models.py:1620
+#: common/models.py:1630
 msgid "Allow building with expired stock"
 msgstr ""
 
-#: common/models.py:1626
+#: common/models.py:1636
 msgid "Stock Ownership Control"
 msgstr ""
 
-#: common/models.py:1627
+#: common/models.py:1637
 msgid "Enable ownership control over stock locations and items"
 msgstr ""
 
-#: common/models.py:1633
+#: common/models.py:1643
 msgid "Stock Location Default Icon"
 msgstr ""
 
-#: common/models.py:1634
+#: common/models.py:1644
 msgid "Stock location default icon (empty means no icon)"
 msgstr ""
 
-#: common/models.py:1639
+#: common/models.py:1649
 msgid "Show Installed Stock Items"
 msgstr ""
 
-#: common/models.py:1640
+#: common/models.py:1650
 msgid "Display installed stock items in stock tables"
 msgstr ""
 
-#: common/models.py:1646
+#: common/models.py:1656
 msgid "Build Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1647
+#: common/models.py:1657
 msgid "Required pattern for generating Build Order reference field"
 msgstr ""
 
-#: common/models.py:1653
+#: common/models.py:1663
 msgid "Enable Return Orders"
 msgstr ""
 
-#: common/models.py:1654
+#: common/models.py:1664
 msgid "Enable return order functionality in the user interface"
 msgstr ""
 
-#: common/models.py:1660
+#: common/models.py:1670
 msgid "Return Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1661
+#: common/models.py:1671
 msgid "Required pattern for generating Return Order reference field"
 msgstr ""
 
-#: common/models.py:1667
+#: common/models.py:1677
 msgid "Edit Completed Return Orders"
 msgstr ""
 
-#: common/models.py:1668
+#: common/models.py:1678
 msgid "Allow editing of return orders after they have been completed"
 msgstr ""
 
-#: common/models.py:1674
+#: common/models.py:1684
 msgid "Sales Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1675
+#: common/models.py:1685
 msgid "Required pattern for generating Sales Order reference field"
 msgstr ""
 
-#: common/models.py:1681
+#: common/models.py:1691
 msgid "Sales Order Default Shipment"
 msgstr ""
 
-#: common/models.py:1682
+#: common/models.py:1692
 msgid "Enable creation of default shipment with sales orders"
 msgstr ""
 
-#: common/models.py:1688
+#: common/models.py:1698
 msgid "Edit Completed Sales Orders"
 msgstr ""
 
-#: common/models.py:1689
+#: common/models.py:1699
 msgid "Allow editing of sales orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1695
+#: common/models.py:1705
 msgid "Purchase Order Reference Pattern"
 msgstr ""
 
-#: common/models.py:1696
+#: common/models.py:1706
 msgid "Required pattern for generating Purchase Order reference field"
 msgstr ""
 
-#: common/models.py:1702
+#: common/models.py:1712
 msgid "Edit Completed Purchase Orders"
 msgstr ""
 
-#: common/models.py:1703
+#: common/models.py:1713
 msgid "Allow editing of purchase orders after they have been shipped or completed"
 msgstr ""
 
-#: common/models.py:1710
+#: common/models.py:1720
 msgid "Enable password forgot"
 msgstr ""
 
-#: common/models.py:1711
+#: common/models.py:1721
 msgid "Enable password forgot function on the login pages"
 msgstr ""
 
-#: common/models.py:1717
+#: common/models.py:1727
 msgid "Enable registration"
 msgstr ""
 
-#: common/models.py:1718
+#: common/models.py:1728
 msgid "Enable self-registration for users on the login pages"
 msgstr ""
 
-#: common/models.py:1724
+#: common/models.py:1734
 msgid "Enable SSO"
 msgstr ""
 
-#: common/models.py:1725
+#: common/models.py:1735
 msgid "Enable SSO on the login pages"
 msgstr ""
 
-#: common/models.py:1731
+#: common/models.py:1741
 msgid "Enable SSO registration"
 msgstr ""
 
-#: common/models.py:1732
+#: common/models.py:1742
 msgid "Enable self-registration via SSO for users on the login pages"
 msgstr ""
 
-#: common/models.py:1738
+#: common/models.py:1748
 msgid "Email required"
 msgstr ""
 
-#: common/models.py:1739
+#: common/models.py:1749
 msgid "Require user to supply mail on signup"
 msgstr ""
 
-#: common/models.py:1745
+#: common/models.py:1755
 msgid "Auto-fill SSO users"
 msgstr ""
 
-#: common/models.py:1746
+#: common/models.py:1756
 msgid "Automatically fill out user-details from SSO account-data"
 msgstr ""
 
-#: common/models.py:1752
+#: common/models.py:1762
 msgid "Mail twice"
 msgstr ""
 
-#: common/models.py:1753
+#: common/models.py:1763
 msgid "On signup ask users twice for their mail"
 msgstr ""
 
-#: common/models.py:1759
+#: common/models.py:1769
 msgid "Password twice"
 msgstr ""
 
-#: common/models.py:1760
+#: common/models.py:1770
 msgid "On signup ask users twice for their password"
 msgstr ""
 
-#: common/models.py:1766
+#: common/models.py:1776
 msgid "Allowed domains"
 msgstr ""
 
-#: common/models.py:1767
+#: common/models.py:1777
 msgid "Restrict signup to certain domains (comma-separated, starting with @)"
 msgstr ""
 
-#: common/models.py:1773
+#: common/models.py:1783
 msgid "Group on signup"
 msgstr ""
 
-#: common/models.py:1774
+#: common/models.py:1784
 msgid "Group to which new users are assigned on registration"
 msgstr ""
 
-#: common/models.py:1780
+#: common/models.py:1790
 msgid "Enforce MFA"
 msgstr ""
 
-#: common/models.py:1781
+#: common/models.py:1791
 msgid "Users must use multifactor security."
 msgstr ""
 
-#: common/models.py:1787
+#: common/models.py:1797
 msgid "Check plugins on startup"
 msgstr ""
 
-#: common/models.py:1788
+#: common/models.py:1798
 msgid "Check that all plugins are installed on startup - enable in container environments"
 msgstr ""
 
-#: common/models.py:1796
+#: common/models.py:1806
 msgid "Enable URL integration"
 msgstr ""
 
-#: common/models.py:1797
+#: common/models.py:1807
 msgid "Enable plugins to add URL routes"
 msgstr ""
 
-#: common/models.py:1804
+#: common/models.py:1814
 msgid "Enable navigation integration"
 msgstr ""
 
-#: common/models.py:1805
+#: common/models.py:1815
 msgid "Enable plugins to integrate into navigation"
 msgstr ""
 
-#: common/models.py:1812
+#: common/models.py:1822
 msgid "Enable app integration"
 msgstr ""
 
-#: common/models.py:1813
+#: common/models.py:1823
 msgid "Enable plugins to add apps"
 msgstr ""
 
-#: common/models.py:1820
+#: common/models.py:1830
 msgid "Enable schedule integration"
 msgstr ""
 
-#: common/models.py:1821
+#: common/models.py:1831
 msgid "Enable plugins to run scheduled tasks"
 msgstr ""
 
-#: common/models.py:1828
+#: common/models.py:1838
 msgid "Enable event integration"
 msgstr ""
 
-#: common/models.py:1829
+#: common/models.py:1839
 msgid "Enable plugins to respond to internal events"
 msgstr ""
 
-#: common/models.py:1836
+#: common/models.py:1846
 msgid "Enable project codes"
 msgstr ""
 
-#: common/models.py:1837
+#: common/models.py:1847
 msgid "Enable project codes for tracking projects"
 msgstr ""
 
-#: common/models.py:1843
+#: common/models.py:1853
 msgid "Stocktake Functionality"
 msgstr ""
 
-#: common/models.py:1844
+#: common/models.py:1854
 msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
 msgstr ""
 
-#: common/models.py:1850
+#: common/models.py:1860
 msgid "Exclude External Locations"
 msgstr ""
 
-#: common/models.py:1851
+#: common/models.py:1861
 msgid "Exclude stock items in external locations from stocktake calculations"
 msgstr ""
 
-#: common/models.py:1857
+#: common/models.py:1867
 msgid "Automatic Stocktake Period"
 msgstr ""
 
-#: common/models.py:1858
+#: common/models.py:1868
 msgid "Number of days between automatic stocktake recording (set to zero to disable)"
 msgstr ""
 
-#: common/models.py:1867
+#: common/models.py:1877
 msgid "Report Deletion Interval"
 msgstr ""
 
-#: common/models.py:1868
+#: common/models.py:1878
 msgid "Stocktake reports will be deleted after specified number of days"
 msgstr ""
 
-#: common/models.py:1878
+#: common/models.py:1888
 msgid "Display Users full names"
 msgstr ""
 
-#: common/models.py:1879
+#: common/models.py:1889
 msgid "Display Users full names instead of usernames"
 msgstr ""
 
-#: common/models.py:1891 common/models.py:2320
+#: common/models.py:1901 common/models.py:2330
 msgid "Settings key (must be unique - case insensitive"
 msgstr ""
 
-#: common/models.py:1931
+#: common/models.py:1941
 msgid "Hide inactive parts"
 msgstr ""
 
-#: common/models.py:1932
+#: common/models.py:1942
 msgid "Hide inactive parts in results displayed on the homepage"
 msgstr ""
 
-#: common/models.py:1938
+#: common/models.py:1948
 msgid "Show subscribed parts"
 msgstr ""
 
-#: common/models.py:1939
+#: common/models.py:1949
 msgid "Show subscribed parts on the homepage"
 msgstr ""
 
-#: common/models.py:1945
+#: common/models.py:1955
 msgid "Show subscribed categories"
 msgstr ""
 
-#: common/models.py:1946
+#: common/models.py:1956
 msgid "Show subscribed part categories on the homepage"
 msgstr ""
 
-#: common/models.py:1952
+#: common/models.py:1962
 msgid "Show latest parts"
 msgstr ""
 
-#: common/models.py:1953
+#: common/models.py:1963
 msgid "Show latest parts on the homepage"
 msgstr ""
 
-#: common/models.py:1959
+#: common/models.py:1969
 msgid "Show unvalidated BOMs"
 msgstr ""
 
-#: common/models.py:1960
+#: common/models.py:1970
 msgid "Show BOMs that await validation on the homepage"
 msgstr ""
 
-#: common/models.py:1966
+#: common/models.py:1976
 msgid "Show recent stock changes"
 msgstr ""
 
-#: common/models.py:1967
+#: common/models.py:1977
 msgid "Show recently changed stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1973
+#: common/models.py:1983
 msgid "Show low stock"
 msgstr ""
 
-#: common/models.py:1974
+#: common/models.py:1984
 msgid "Show low stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1980
+#: common/models.py:1990
 msgid "Show depleted stock"
 msgstr ""
 
-#: common/models.py:1981
+#: common/models.py:1991
 msgid "Show depleted stock items on the homepage"
 msgstr ""
 
-#: common/models.py:1987
+#: common/models.py:1997
 msgid "Show needed stock"
 msgstr ""
 
-#: common/models.py:1988
+#: common/models.py:1998
 msgid "Show stock items needed for builds on the homepage"
 msgstr ""
 
-#: common/models.py:1994
+#: common/models.py:2004
 msgid "Show expired stock"
 msgstr ""
 
-#: common/models.py:1995
+#: common/models.py:2005
 msgid "Show expired stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2001
+#: common/models.py:2011
 msgid "Show stale stock"
 msgstr ""
 
-#: common/models.py:2002
+#: common/models.py:2012
 msgid "Show stale stock items on the homepage"
 msgstr ""
 
-#: common/models.py:2008
+#: common/models.py:2018
 msgid "Show pending builds"
 msgstr ""
 
-#: common/models.py:2009
+#: common/models.py:2019
 msgid "Show pending builds on the homepage"
 msgstr ""
 
-#: common/models.py:2015
+#: common/models.py:2025
 msgid "Show overdue builds"
 msgstr ""
 
-#: common/models.py:2016
+#: common/models.py:2026
 msgid "Show overdue builds on the homepage"
 msgstr ""
 
-#: common/models.py:2022
+#: common/models.py:2032
 msgid "Show outstanding POs"
 msgstr ""
 
-#: common/models.py:2023
+#: common/models.py:2033
 msgid "Show outstanding POs on the homepage"
 msgstr ""
 
-#: common/models.py:2029
+#: common/models.py:2039
 msgid "Show overdue POs"
 msgstr ""
 
-#: common/models.py:2030
+#: common/models.py:2040
 msgid "Show overdue POs on the homepage"
 msgstr ""
 
-#: common/models.py:2036
+#: common/models.py:2046
 msgid "Show outstanding SOs"
 msgstr ""
 
-#: common/models.py:2037
+#: common/models.py:2047
 msgid "Show outstanding SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2043
+#: common/models.py:2053
 msgid "Show overdue SOs"
 msgstr ""
 
-#: common/models.py:2044
+#: common/models.py:2054
 msgid "Show overdue SOs on the homepage"
 msgstr ""
 
-#: common/models.py:2050
+#: common/models.py:2060
 msgid "Show pending SO shipments"
 msgstr ""
 
-#: common/models.py:2051
+#: common/models.py:2061
 msgid "Show pending SO shipments on the homepage"
 msgstr ""
 
-#: common/models.py:2057
+#: common/models.py:2067
 msgid "Show News"
 msgstr ""
 
-#: common/models.py:2058
+#: common/models.py:2068
 msgid "Show news on the homepage"
 msgstr ""
 
-#: common/models.py:2064
+#: common/models.py:2074
 msgid "Inline label display"
 msgstr ""
 
-#: common/models.py:2065
+#: common/models.py:2075
 msgid "Display PDF labels in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2071
+#: common/models.py:2081
 msgid "Default label printer"
 msgstr ""
 
-#: common/models.py:2072
+#: common/models.py:2082
 msgid "Configure which label printer should be selected by default"
 msgstr ""
 
-#: common/models.py:2078
+#: common/models.py:2088
 msgid "Inline report display"
 msgstr ""
 
-#: common/models.py:2079
+#: common/models.py:2089
 msgid "Display PDF reports in the browser, instead of downloading as a file"
 msgstr ""
 
-#: common/models.py:2085
+#: common/models.py:2095
 msgid "Search Parts"
 msgstr ""
 
-#: common/models.py:2086
+#: common/models.py:2096
 msgid "Display parts in search preview window"
 msgstr ""
 
-#: common/models.py:2092
+#: common/models.py:2102
 msgid "Search Supplier Parts"
 msgstr ""
 
-#: common/models.py:2093
+#: common/models.py:2103
 msgid "Display supplier parts in search preview window"
 msgstr ""
 
-#: common/models.py:2099
+#: common/models.py:2109
 msgid "Search Manufacturer Parts"
 msgstr ""
 
-#: common/models.py:2100
+#: common/models.py:2110
 msgid "Display manufacturer parts in search preview window"
 msgstr ""
 
-#: common/models.py:2106
+#: common/models.py:2116
 msgid "Hide Inactive Parts"
 msgstr ""
 
-#: common/models.py:2107
+#: common/models.py:2117
 msgid "Excluded inactive parts from search preview window"
 msgstr ""
 
-#: common/models.py:2113
+#: common/models.py:2123
 msgid "Search Categories"
 msgstr ""
 
-#: common/models.py:2114
+#: common/models.py:2124
 msgid "Display part categories in search preview window"
 msgstr ""
 
-#: common/models.py:2120
+#: common/models.py:2130
 msgid "Search Stock"
 msgstr ""
 
-#: common/models.py:2121
+#: common/models.py:2131
 msgid "Display stock items in search preview window"
 msgstr ""
 
-#: common/models.py:2127
+#: common/models.py:2137
 msgid "Hide Unavailable Stock Items"
 msgstr ""
 
-#: common/models.py:2128
+#: common/models.py:2138
 msgid "Exclude stock items which are not available from the search preview window"
 msgstr ""
 
-#: common/models.py:2134
+#: common/models.py:2144
 msgid "Search Locations"
 msgstr ""
 
-#: common/models.py:2135
+#: common/models.py:2145
 msgid "Display stock locations in search preview window"
 msgstr ""
 
-#: common/models.py:2141
+#: common/models.py:2151
 msgid "Search Companies"
 msgstr ""
 
-#: common/models.py:2142
+#: common/models.py:2152
 msgid "Display companies in search preview window"
 msgstr ""
 
-#: common/models.py:2148
+#: common/models.py:2158
 msgid "Search Build Orders"
 msgstr ""
 
-#: common/models.py:2149
+#: common/models.py:2159
 msgid "Display build orders in search preview window"
 msgstr ""
 
-#: common/models.py:2155
+#: common/models.py:2165
 msgid "Search Purchase Orders"
 msgstr ""
 
-#: common/models.py:2156
+#: common/models.py:2166
 msgid "Display purchase orders in search preview window"
 msgstr ""
 
-#: common/models.py:2162
+#: common/models.py:2172
 msgid "Exclude Inactive Purchase Orders"
 msgstr ""
 
-#: common/models.py:2163
+#: common/models.py:2173
 msgid "Exclude inactive purchase orders from search preview window"
 msgstr ""
 
-#: common/models.py:2169
+#: common/models.py:2179
 msgid "Search Sales Orders"
 msgstr ""
 
-#: common/models.py:2170
+#: common/models.py:2180
 msgid "Display sales orders in search preview window"
 msgstr ""
 
-#: common/models.py:2176
+#: common/models.py:2186
 msgid "Exclude Inactive Sales Orders"
 msgstr ""
 
-#: common/models.py:2177
+#: common/models.py:2187
 msgid "Exclude inactive sales orders from search preview window"
 msgstr ""
 
-#: common/models.py:2183
+#: common/models.py:2193
 msgid "Search Return Orders"
 msgstr ""
 
-#: common/models.py:2184
+#: common/models.py:2194
 msgid "Display return orders in search preview window"
 msgstr ""
 
-#: common/models.py:2190
+#: common/models.py:2200
 msgid "Exclude Inactive Return Orders"
 msgstr ""
 
-#: common/models.py:2191
+#: common/models.py:2201
 msgid "Exclude inactive return orders from search preview window"
 msgstr ""
 
-#: common/models.py:2197
+#: common/models.py:2207
 msgid "Search Preview Results"
 msgstr ""
 
-#: common/models.py:2198
+#: common/models.py:2208
 msgid "Number of results to show in each section of the search preview window"
 msgstr ""
 
-#: common/models.py:2204
+#: common/models.py:2214
 msgid "Regex Search"
 msgstr ""
 
-#: common/models.py:2205
+#: common/models.py:2215
 msgid "Enable regular expressions in search queries"
 msgstr ""
 
-#: common/models.py:2211
+#: common/models.py:2221
 msgid "Whole Word Search"
 msgstr ""
 
-#: common/models.py:2212
+#: common/models.py:2222
 msgid "Search queries return results for whole word matches"
 msgstr ""
 
-#: common/models.py:2218
+#: common/models.py:2228
 msgid "Show Quantity in Forms"
 msgstr ""
 
-#: common/models.py:2219
+#: common/models.py:2229
 msgid "Display available part quantity in some forms"
 msgstr ""
 
-#: common/models.py:2225
+#: common/models.py:2235
 msgid "Escape Key Closes Forms"
 msgstr ""
 
-#: common/models.py:2226
+#: common/models.py:2236
 msgid "Use the escape key to close modal forms"
 msgstr ""
 
-#: common/models.py:2232
+#: common/models.py:2242
 msgid "Fixed Navbar"
 msgstr ""
 
-#: common/models.py:2233
+#: common/models.py:2243
 msgid "The navbar position is fixed to the top of the screen"
 msgstr ""
 
-#: common/models.py:2239
+#: common/models.py:2249
 msgid "Date Format"
 msgstr ""
 
-#: common/models.py:2240
+#: common/models.py:2250
 msgid "Preferred format for displaying dates"
 msgstr ""
 
-#: common/models.py:2254 part/templates/part/detail.html:41
+#: common/models.py:2264 part/templates/part/detail.html:41
 msgid "Part Scheduling"
 msgstr ""
 
-#: common/models.py:2255
+#: common/models.py:2265
 msgid "Display part scheduling information"
 msgstr ""
 
-#: common/models.py:2261 part/templates/part/detail.html:62
+#: common/models.py:2271 part/templates/part/detail.html:62
 msgid "Part Stocktake"
 msgstr ""
 
-#: common/models.py:2262
+#: common/models.py:2272
 msgid "Display part stocktake information (if stocktake functionality is enabled)"
 msgstr ""
 
-#: common/models.py:2268
+#: common/models.py:2278
 msgid "Table String Length"
 msgstr ""
 
-#: common/models.py:2269
+#: common/models.py:2279
 msgid "Maximimum length limit for strings displayed in table views"
 msgstr ""
 
-#: common/models.py:2278
+#: common/models.py:2288
 msgid "Default part label template"
 msgstr ""
 
-#: common/models.py:2279
+#: common/models.py:2289
 msgid "The part label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2287
+#: common/models.py:2297
 msgid "Default stock item template"
 msgstr ""
 
-#: common/models.py:2288
+#: common/models.py:2298
 msgid "The stock item label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2296
+#: common/models.py:2306
 msgid "Default stock location label template"
 msgstr ""
 
-#: common/models.py:2297
+#: common/models.py:2307
 msgid "The stock location label template to be automatically selected"
 msgstr ""
 
-#: common/models.py:2305
+#: common/models.py:2315
 msgid "Receive error reports"
 msgstr ""
 
-#: common/models.py:2306
+#: common/models.py:2316
 msgid "Receive notifications for system errors"
 msgstr ""
 
-#: common/models.py:2350
+#: common/models.py:2360
 msgid "Price break quantity"
 msgstr ""
 
-#: common/models.py:2357 company/serializers.py:485 order/admin.py:41
+#: common/models.py:2367 company/serializers.py:485 order/admin.py:41
 #: order/models.py:1147 order/models.py:1957
 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
 #: templates/js/translated/pricing.js:621
@@ -3401,23 +3406,23 @@ msgstr ""
 msgid "Price"
 msgstr ""
 
-#: common/models.py:2358
+#: common/models.py:2368
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/models.py:2517 common/models.py:2695
+#: common/models.py:2527 common/models.py:2705
 msgid "Endpoint"
 msgstr ""
 
-#: common/models.py:2518
+#: common/models.py:2528
 msgid "Endpoint at which this webhook is received"
 msgstr ""
 
-#: common/models.py:2527
+#: common/models.py:2537
 msgid "Name for this webhook"
 msgstr ""
 
-#: common/models.py:2532 part/admin.py:50 part/models.py:959
+#: common/models.py:2542 part/admin.py:50 part/models.py:959
 #: plugin/models.py:48 templates/js/translated/table_filters.js:135
 #: templates/js/translated/table_filters.js:219
 #: templates/js/translated/table_filters.js:488
@@ -3426,101 +3431,101 @@ msgstr ""
 msgid "Active"
 msgstr ""
 
-#: common/models.py:2533
+#: common/models.py:2543
 msgid "Is this webhook active"
 msgstr ""
 
-#: common/models.py:2547 users/models.py:149
+#: common/models.py:2557 users/models.py:149
 msgid "Token"
 msgstr ""
 
-#: common/models.py:2548
+#: common/models.py:2558
 msgid "Token for access"
 msgstr ""
 
-#: common/models.py:2555
+#: common/models.py:2565
 msgid "Secret"
 msgstr ""
 
-#: common/models.py:2556
+#: common/models.py:2566
 msgid "Shared secret for HMAC"
 msgstr ""
 
-#: common/models.py:2662
+#: common/models.py:2672
 msgid "Message ID"
 msgstr ""
 
-#: common/models.py:2663
+#: common/models.py:2673
 msgid "Unique identifier for this message"
 msgstr ""
 
-#: common/models.py:2671
+#: common/models.py:2681
 msgid "Host"
 msgstr ""
 
-#: common/models.py:2672
+#: common/models.py:2682
 msgid "Host from which this message was received"
 msgstr ""
 
-#: common/models.py:2679
+#: common/models.py:2689
 msgid "Header"
 msgstr ""
 
-#: common/models.py:2680
+#: common/models.py:2690
 msgid "Header of this message"
 msgstr ""
 
-#: common/models.py:2686
+#: common/models.py:2696
 msgid "Body"
 msgstr ""
 
-#: common/models.py:2687
+#: common/models.py:2697
 msgid "Body of this message"
 msgstr ""
 
-#: common/models.py:2696
+#: common/models.py:2706
 msgid "Endpoint on which this message was received"
 msgstr ""
 
-#: common/models.py:2701
+#: common/models.py:2711
 msgid "Worked on"
 msgstr ""
 
-#: common/models.py:2702
+#: common/models.py:2712
 msgid "Was the work on this message finished?"
 msgstr ""
 
-#: common/models.py:2856
+#: common/models.py:2866
 msgid "Id"
 msgstr ""
 
-#: common/models.py:2862 templates/js/translated/company.js:955
+#: common/models.py:2872 templates/js/translated/company.js:955
 #: templates/js/translated/news.js:44
 msgid "Title"
 msgstr ""
 
-#: common/models.py:2872 templates/js/translated/news.js:60
+#: common/models.py:2882 templates/js/translated/news.js:60
 msgid "Published"
 msgstr ""
 
-#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2887 templates/InvenTree/settings/plugin_settings.html:32
 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
 msgid "Author"
 msgstr ""
 
-#: common/models.py:2882 templates/js/translated/news.js:52
+#: common/models.py:2892 templates/js/translated/news.js:52
 msgid "Summary"
 msgstr ""
 
-#: common/models.py:2887
+#: common/models.py:2897
 msgid "Read"
 msgstr ""
 
-#: common/models.py:2888
+#: common/models.py:2898
 msgid "Was this news item read?"
 msgstr ""
 
-#: common/models.py:2907 company/models.py:139 part/models.py:849
+#: common/models.py:2917 company/models.py:139 part/models.py:849
 #: report/templates/report/inventree_bill_of_materials_report.html:126
 #: report/templates/report/inventree_bill_of_materials_report.html:148
 #: report/templates/report/inventree_return_order_report_base.html:35
@@ -3530,31 +3535,31 @@ msgstr ""
 msgid "Image"
 msgstr ""
 
-#: common/models.py:2908
+#: common/models.py:2918
 msgid "Image file"
 msgstr ""
 
-#: common/models.py:2951
+#: common/models.py:2961
 msgid "Unit name must be a valid identifier"
 msgstr ""
 
-#: common/models.py:2973
+#: common/models.py:2983
 msgid "Unit name"
 msgstr ""
 
-#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2989 templates/InvenTree/settings/settings_staff_js.html:75
 msgid "Symbol"
 msgstr ""
 
-#: common/models.py:2980
+#: common/models.py:2990
 msgid "Optional unit symbol"
 msgstr ""
 
-#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:71
 msgid "Definition"
 msgstr ""
 
-#: common/models.py:2987
+#: common/models.py:2997
 msgid "Unit definition"
 msgstr ""
 
@@ -3809,7 +3814,7 @@ msgstr ""
 
 #: company/models.py:427 company/templates/company/company_base.html:76
 #: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:441
+#: company/templates/company/supplier_part.html:145 part/serializers.py:445
 #: stock/templates/stock/item_base.html:207
 #: templates/js/translated/company.js:506
 #: templates/js/translated/company.js:1108
@@ -3824,7 +3829,7 @@ msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:153 part/serializers.py:447
+#: company/templates/company/supplier_part.html:153 part/serializers.py:451
 #: templates/js/translated/company.js:351
 #: templates/js/translated/company.js:1107
 #: templates/js/translated/company.js:1302
@@ -3870,7 +3875,7 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:538 company/templates/company/supplier_part.html:168
-#: part/admin.py:40 part/models.py:923 part/models.py:3374
+#: part/admin.py:40 part/models.py:923 part/models.py:3395
 #: part/templates/part/part_base.html:284
 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511
 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368
@@ -3896,7 +3901,7 @@ msgstr ""
 #: company/models.py:699 company/templates/company/company_base.html:81
 #: company/templates/company/supplier_part.html:129 order/models.py:386
 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:434 plugin/builtin/suppliers/digikey.py:25
 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24
 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224
 #: templates/email/overdue_purchase_order.html:16
@@ -3914,7 +3919,7 @@ msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:705 company/templates/company/supplier_part.html:139
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:436
+#: part/bom.py:285 part/bom.py:313 part/serializers.py:440
 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786
 #: templates/js/translated/pricing.js:510
 #: templates/js/translated/purchase_order.js:1844
@@ -3922,7 +3927,7 @@ msgstr ""
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:706 part/serializers.py:436
+#: company/models.py:706 part/serializers.py:440
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -3939,7 +3944,7 @@ msgid "Supplier part description"
 msgstr ""
 
 #: company/models.py:731 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3797 part/templates/part/upload_bom.html:59
 #: report/templates/report/inventree_bill_of_materials_report.html:140
 #: report/templates/report/inventree_po_report_base.html:32
 #: report/templates/report/inventree_return_order_report_base.html:27
@@ -4786,7 +4791,7 @@ msgid "Only salable parts can be assigned to a sales order"
 msgstr ""
 
 #: order/models.py:1335 part/templates/part/part_pricing.html:107
-#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
+#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
 msgid "Sale Price"
 msgstr ""
 
@@ -5481,12 +5486,12 @@ msgstr ""
 msgid "Updated {part} unit-price to {price} and quantity to {qty}"
 msgstr ""
 
-#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:269 part/models.py:3660 part/stocktake.py:217
 #: stock/admin.py:119
 msgid "Part ID"
 msgstr ""
 
-#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:271 part/models.py:3664 part/stocktake.py:218
 #: stock/admin.py:120
 msgid "Part Name"
 msgstr ""
@@ -5559,11 +5564,13 @@ msgstr ""
 msgid "Building"
 msgstr ""
 
-#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969
+#: part/admin.py:66 part/models.py:2911 part/models.py:2923
+#: templates/js/translated/part.js:969
 msgid "Minimum Cost"
 msgstr ""
 
-#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979
+#: part/admin.py:67 part/models.py:2917 part/models.py:2929
+#: templates/js/translated/part.js:979
 msgid "Maximum Cost"
 msgstr ""
 
@@ -5580,7 +5587,7 @@ msgstr ""
 msgid "Category Path"
 msgstr ""
 
-#: part/admin.py:199 part/models.py:366 part/serializers.py:340
+#: part/admin.py:199 part/models.py:366 part/serializers.py:344
 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
 #: part/templates/part/category.html:141 part/templates/part/category.html:161
 #: part/templates/part/category_sidebar.html:9
@@ -5603,16 +5610,18 @@ msgstr ""
 msgid "Parent IPN"
 msgstr ""
 
-#: part/admin.py:270 part/models.py:3647
+#: part/admin.py:270 part/models.py:3668
 msgid "Part IPN"
 msgstr ""
 
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:276 part/serializers.py:1085
+#: templates/js/translated/pricing.js:358
 #: templates/js/translated/pricing.js:1024
 msgid "Minimum Price"
 msgstr ""
 
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:277 part/serializers.py:1097
+#: templates/js/translated/pricing.js:353
 #: templates/js/translated/pricing.js:1032
 msgid "Maximum Price"
 msgstr ""
@@ -5663,7 +5672,7 @@ msgstr ""
 msgid "Input quantity for price calculation"
 msgstr ""
 
-#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3609 part/templates/part/category.html:16
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
 msgstr ""
@@ -5697,7 +5706,7 @@ msgid "Default keywords for parts in this category"
 msgstr ""
 
 #: part/models.py:114 stock/models.py:85 stock/models.py:142
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/InvenTree/settings/settings_staff_js.html:456
 msgid "Icon"
 msgstr ""
 
@@ -5744,7 +5753,7 @@ msgstr ""
 msgid "Parts cannot be assigned to structural part categories!"
 msgstr ""
 
-#: part/models.py:781 part/models.py:3644
+#: part/models.py:781 part/models.py:3665
 msgid "Part name"
 msgstr ""
 
@@ -5768,10 +5777,10 @@ msgstr ""
 msgid "Part keywords to improve visibility in search results"
 msgstr ""
 
-#: part/models.py:818 part/models.py:3167 part/models.py:3587
-#: part/serializers.py:353 part/serializers.py:967
+#: part/models.py:818 part/models.py:3188 part/models.py:3608
+#: part/serializers.py:357 part/serializers.py:971
 #: part/templates/part/part_base.html:260 stock/api.py:633
-#: templates/InvenTree/settings/settings_staff_js.html:280
+#: templates/InvenTree/settings/settings_staff_js.html:300
 #: templates/js/translated/notification.js:60
 #: templates/js/translated/part.js:2375
 msgid "Category"
@@ -5879,151 +5888,159 @@ msgstr ""
 msgid "Sell multiple"
 msgstr ""
 
-#: part/models.py:2825
+#: part/models.py:2834
 msgid "Currency used to cache pricing calculations"
 msgstr ""
 
-#: part/models.py:2842
+#: part/models.py:2851
 msgid "Minimum BOM Cost"
 msgstr ""
 
-#: part/models.py:2843
+#: part/models.py:2852
 msgid "Minimum cost of component parts"
 msgstr ""
 
-#: part/models.py:2848
+#: part/models.py:2857
 msgid "Maximum BOM Cost"
 msgstr ""
 
-#: part/models.py:2849
+#: part/models.py:2858
 msgid "Maximum cost of component parts"
 msgstr ""
 
-#: part/models.py:2854
+#: part/models.py:2863
 msgid "Minimum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2855
+#: part/models.py:2864
 msgid "Minimum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2860
+#: part/models.py:2869
 msgid "Maximum Purchase Cost"
 msgstr ""
 
-#: part/models.py:2861
+#: part/models.py:2870
 msgid "Maximum historical purchase cost"
 msgstr ""
 
-#: part/models.py:2866
+#: part/models.py:2875
 msgid "Minimum Internal Price"
 msgstr ""
 
-#: part/models.py:2867
+#: part/models.py:2876
 msgid "Minimum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2872
+#: part/models.py:2881
 msgid "Maximum Internal Price"
 msgstr ""
 
-#: part/models.py:2873
+#: part/models.py:2882
 msgid "Maximum cost based on internal price breaks"
 msgstr ""
 
-#: part/models.py:2878
+#: part/models.py:2887
 msgid "Minimum Supplier Price"
 msgstr ""
 
-#: part/models.py:2879
+#: part/models.py:2888
 msgid "Minimum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2884
+#: part/models.py:2893
 msgid "Maximum Supplier Price"
 msgstr ""
 
-#: part/models.py:2885
+#: part/models.py:2894
 msgid "Maximum price of part from external suppliers"
 msgstr ""
 
-#: part/models.py:2890
+#: part/models.py:2899
 msgid "Minimum Variant Cost"
 msgstr ""
 
-#: part/models.py:2891
+#: part/models.py:2900
 msgid "Calculated minimum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2896
+#: part/models.py:2905
 msgid "Maximum Variant Cost"
 msgstr ""
 
-#: part/models.py:2897
+#: part/models.py:2906
 msgid "Calculated maximum cost of variant parts"
 msgstr ""
 
-#: part/models.py:2903
+#: part/models.py:2912
+msgid "Override minimum cost"
+msgstr ""
+
+#: part/models.py:2918
+msgid "Override maximum cost"
+msgstr ""
+
+#: part/models.py:2924
 msgid "Calculated overall minimum cost"
 msgstr ""
 
-#: part/models.py:2909
+#: part/models.py:2930
 msgid "Calculated overall maximum cost"
 msgstr ""
 
-#: part/models.py:2914
+#: part/models.py:2935
 msgid "Minimum Sale Price"
 msgstr ""
 
-#: part/models.py:2915
+#: part/models.py:2936
 msgid "Minimum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2920
+#: part/models.py:2941
 msgid "Maximum Sale Price"
 msgstr ""
 
-#: part/models.py:2921
+#: part/models.py:2942
 msgid "Maximum sale price based on price breaks"
 msgstr ""
 
-#: part/models.py:2926
+#: part/models.py:2947
 msgid "Minimum Sale Cost"
 msgstr ""
 
-#: part/models.py:2927
+#: part/models.py:2948
 msgid "Minimum historical sale price"
 msgstr ""
 
-#: part/models.py:2932
+#: part/models.py:2953
 msgid "Maximum Sale Cost"
 msgstr ""
 
-#: part/models.py:2933
+#: part/models.py:2954
 msgid "Maximum historical sale price"
 msgstr ""
 
-#: part/models.py:2952
+#: part/models.py:2973
 msgid "Part for stocktake"
 msgstr ""
 
-#: part/models.py:2957
+#: part/models.py:2978
 msgid "Item Count"
 msgstr ""
 
-#: part/models.py:2958
+#: part/models.py:2979
 msgid "Number of individual stock entries at time of stocktake"
 msgstr ""
 
-#: part/models.py:2965
+#: part/models.py:2986
 msgid "Total available stock at time of stocktake"
 msgstr ""
 
-#: part/models.py:2969 part/models.py:3049
+#: part/models.py:2990 part/models.py:3070
 #: part/templates/part/part_scheduling.html:13
 #: report/templates/report/inventree_test_report_base.html:106
 #: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:540
 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826
 #: templates/js/translated/pricing.js:950
 #: templates/js/translated/purchase_order.js:1725
@@ -6031,567 +6048,596 @@ msgstr ""
 msgid "Date"
 msgstr ""
 
-#: part/models.py:2970
+#: part/models.py:2991
 msgid "Date stocktake was performed"
 msgstr ""
 
-#: part/models.py:2978
+#: part/models.py:2999
 msgid "Additional notes"
 msgstr ""
 
-#: part/models.py:2986
+#: part/models.py:3007
 msgid "User who performed this stocktake"
 msgstr ""
 
-#: part/models.py:2991
+#: part/models.py:3012
 msgid "Minimum Stock Cost"
 msgstr ""
 
-#: part/models.py:2992
+#: part/models.py:3013
 msgid "Estimated minimum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:2997
+#: part/models.py:3018
 msgid "Maximum Stock Cost"
 msgstr ""
 
-#: part/models.py:2998
+#: part/models.py:3019
 msgid "Estimated maximum cost of stock on hand"
 msgstr ""
 
-#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3077 templates/InvenTree/settings/settings_staff_js.html:529
 msgid "Report"
 msgstr ""
 
-#: part/models.py:3057
+#: part/models.py:3078
 msgid "Stocktake report file (generated internally)"
 msgstr ""
 
-#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3083 templates/InvenTree/settings/settings_staff_js.html:536
 msgid "Part Count"
 msgstr ""
 
-#: part/models.py:3063
+#: part/models.py:3084
 msgid "Number of parts covered by stocktake"
 msgstr ""
 
-#: part/models.py:3071
+#: part/models.py:3092
 msgid "User who requested this stocktake report"
 msgstr ""
 
-#: part/models.py:3207
+#: part/models.py:3228
 msgid "Test templates can only be created for trackable parts"
 msgstr ""
 
-#: part/models.py:3224
+#: part/models.py:3245
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:3244 templates/js/translated/part.js:2866
+#: part/models.py:3265 templates/js/translated/part.js:2866
 msgid "Test Name"
 msgstr ""
 
-#: part/models.py:3245
+#: part/models.py:3266
 msgid "Enter a name for the test"
 msgstr ""
 
-#: part/models.py:3250
+#: part/models.py:3271
 msgid "Test Description"
 msgstr ""
 
-#: part/models.py:3251
+#: part/models.py:3272
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:3256 templates/js/translated/part.js:2875
+#: part/models.py:3277 templates/js/translated/part.js:2875
 #: templates/js/translated/table_filters.js:477
 msgid "Required"
 msgstr ""
 
-#: part/models.py:3257
+#: part/models.py:3278
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:3262 templates/js/translated/part.js:2883
+#: part/models.py:3283 templates/js/translated/part.js:2883
 msgid "Requires Value"
 msgstr ""
 
-#: part/models.py:3263
+#: part/models.py:3284
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:3268 templates/js/translated/part.js:2890
+#: part/models.py:3289 templates/js/translated/part.js:2890
 msgid "Requires Attachment"
 msgstr ""
 
-#: part/models.py:3269
+#: part/models.py:3290
 msgid "Does this test require a file attachment when adding a test result?"
 msgstr ""
 
-#: part/models.py:3314
+#: part/models.py:3335
 msgid "Checkbox parameters cannot have units"
 msgstr ""
 
-#: part/models.py:3319
+#: part/models.py:3340
 msgid "Checkbox parameters cannot have choices"
 msgstr ""
 
-#: part/models.py:3337
+#: part/models.py:3358
 msgid "Choices must be unique"
 msgstr ""
 
-#: part/models.py:3353
+#: part/models.py:3374
 msgid "Parameter template name must be unique"
 msgstr ""
 
-#: part/models.py:3368
+#: part/models.py:3389
 msgid "Parameter Name"
 msgstr ""
 
-#: part/models.py:3374
+#: part/models.py:3395
 msgid "Physical units for this parameter"
 msgstr ""
 
-#: part/models.py:3384
+#: part/models.py:3405
 msgid "Parameter description"
 msgstr ""
 
-#: part/models.py:3390 templates/js/translated/part.js:1627
+#: part/models.py:3411 templates/js/translated/part.js:1627
 #: templates/js/translated/table_filters.js:817
 msgid "Checkbox"
 msgstr ""
 
-#: part/models.py:3391
+#: part/models.py:3412
 msgid "Is this parameter a checkbox?"
 msgstr ""
 
-#: part/models.py:3396 templates/js/translated/part.js:1636
+#: part/models.py:3417 templates/js/translated/part.js:1636
 msgid "Choices"
 msgstr ""
 
-#: part/models.py:3397
+#: part/models.py:3418
 msgid "Valid choices for this parameter (comma-separated)"
 msgstr ""
 
-#: part/models.py:3471
+#: part/models.py:3492
 msgid "Invalid choice for parameter value"
 msgstr ""
 
-#: part/models.py:3513
+#: part/models.py:3534
 msgid "Parent Part"
 msgstr ""
 
-#: part/models.py:3518 part/models.py:3593 part/models.py:3594
-#: templates/InvenTree/settings/settings_staff_js.html:275
+#: part/models.py:3539 part/models.py:3614 part/models.py:3615
+#: templates/InvenTree/settings/settings_staff_js.html:295
 msgid "Parameter Template"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Data"
 msgstr ""
 
-#: part/models.py:3523
+#: part/models.py:3544
 msgid "Parameter Value"
 msgstr ""
 
-#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3619 templates/InvenTree/settings/settings_staff_js.html:304
 msgid "Default Value"
 msgstr ""
 
-#: part/models.py:3599
+#: part/models.py:3620
 msgid "Default Parameter Value"
 msgstr ""
 
-#: part/models.py:3636
+#: part/models.py:3657
 msgid "Part ID or part name"
 msgstr ""
 
-#: part/models.py:3640
+#: part/models.py:3661
 msgid "Unique part ID value"
 msgstr ""
 
-#: part/models.py:3648
+#: part/models.py:3669
 msgid "Part IPN value"
 msgstr ""
 
-#: part/models.py:3651
+#: part/models.py:3672
 msgid "Level"
 msgstr ""
 
-#: part/models.py:3652
+#: part/models.py:3673
 msgid "BOM level"
 msgstr ""
 
-#: part/models.py:3658 part/models.py:4053 stock/api.py:648
+#: part/models.py:3679 part/models.py:4074 stock/api.py:648
 msgid "BOM Item"
 msgstr ""
 
-#: part/models.py:3739
+#: part/models.py:3760
 msgid "Select parent part"
 msgstr ""
 
-#: part/models.py:3747
+#: part/models.py:3768
 msgid "Sub part"
 msgstr ""
 
-#: part/models.py:3748
+#: part/models.py:3769
 msgid "Select part to be used in BOM"
 msgstr ""
 
-#: part/models.py:3754
+#: part/models.py:3775
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:3759
+#: part/models.py:3780
 msgid "This BOM item is optional"
 msgstr ""
 
-#: part/models.py:3765
+#: part/models.py:3786
 msgid "This BOM item is consumable (it is not tracked in build orders)"
 msgstr ""
 
-#: part/models.py:3769 part/templates/part/upload_bom.html:55
+#: part/models.py:3790 part/templates/part/upload_bom.html:55
 msgid "Overage"
 msgstr ""
 
-#: part/models.py:3770
+#: part/models.py:3791
 msgid "Estimated build wastage quantity (absolute or percentage)"
 msgstr ""
 
-#: part/models.py:3773
+#: part/models.py:3794
 msgid "BOM item reference"
 msgstr ""
 
-#: part/models.py:3776
+#: part/models.py:3797
 msgid "BOM item notes"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "Checksum"
 msgstr ""
 
-#: part/models.py:3780
+#: part/models.py:3801
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:3785 templates/js/translated/table_filters.js:174
+#: part/models.py:3806 templates/js/translated/table_filters.js:174
 msgid "Validated"
 msgstr ""
 
-#: part/models.py:3786
+#: part/models.py:3807
 msgid "This BOM item has been validated"
 msgstr ""
 
-#: part/models.py:3791 part/templates/part/upload_bom.html:57
+#: part/models.py:3812 part/templates/part/upload_bom.html:57
 #: templates/js/translated/bom.js:1054
 #: templates/js/translated/table_filters.js:178
 #: templates/js/translated/table_filters.js:211
 msgid "Gets inherited"
 msgstr ""
 
-#: part/models.py:3792
+#: part/models.py:3813
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:3797 part/templates/part/upload_bom.html:56
+#: part/models.py:3818 part/templates/part/upload_bom.html:56
 #: templates/js/translated/bom.js:1046
 msgid "Allow Variants"
 msgstr ""
 
-#: part/models.py:3798
+#: part/models.py:3819
 msgid "Stock items for variant parts can be used for this BOM item"
 msgstr ""
 
-#: part/models.py:3884 stock/models.py:613
+#: part/models.py:3905 stock/models.py:613
 msgid "Quantity must be integer value for trackable parts"
 msgstr ""
 
-#: part/models.py:3893 part/models.py:3895
+#: part/models.py:3914 part/models.py:3916
 msgid "Sub part must be specified"
 msgstr ""
 
-#: part/models.py:4020
+#: part/models.py:4041
 msgid "BOM Item Substitute"
 msgstr ""
 
-#: part/models.py:4041
+#: part/models.py:4062
 msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
-#: part/models.py:4054
+#: part/models.py:4075
 msgid "Parent BOM item"
 msgstr ""
 
-#: part/models.py:4062
+#: part/models.py:4083
 msgid "Substitute part"
 msgstr ""
 
-#: part/models.py:4077
+#: part/models.py:4098
 msgid "Part 1"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Part 2"
 msgstr ""
 
-#: part/models.py:4081
+#: part/models.py:4102
 msgid "Select Related Part"
 msgstr ""
 
-#: part/models.py:4098
+#: part/models.py:4119
 msgid "Part relationship cannot be created between a part and itself"
 msgstr ""
 
-#: part/models.py:4102
+#: part/models.py:4123
 msgid "Duplicate relationship already exists"
 msgstr ""
 
-#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:324
+#: part/serializers.py:174 part/serializers.py:197 stock/serializers.py:324
 msgid "Purchase currency of this stock item"
 msgstr ""
 
-#: part/serializers.py:346
+#: part/serializers.py:350
 msgid "No parts selected"
 msgstr ""
 
-#: part/serializers.py:354
+#: part/serializers.py:358
 msgid "Select category"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Original Part"
 msgstr ""
 
-#: part/serializers.py:384
+#: part/serializers.py:388
 msgid "Select original part to duplicate"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy Image"
 msgstr ""
 
-#: part/serializers.py:389
+#: part/serializers.py:393
 msgid "Copy image from original part"
 msgstr ""
 
-#: part/serializers.py:394 part/templates/part/detail.html:277
+#: part/serializers.py:398 part/templates/part/detail.html:277
 msgid "Copy BOM"
 msgstr ""
 
-#: part/serializers.py:394
+#: part/serializers.py:398
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy Parameters"
 msgstr ""
 
-#: part/serializers.py:399
+#: part/serializers.py:403
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy Notes"
 msgstr ""
 
-#: part/serializers.py:404
+#: part/serializers.py:408
 msgid "Copy notes from original part"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: part/serializers.py:414
+#: part/serializers.py:418
 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Initial Stock Location"
 msgstr ""
 
-#: part/serializers.py:420
+#: part/serializers.py:424
 msgid "Specify initial stock location for this Part"
 msgstr ""
 
-#: part/serializers.py:430
+#: part/serializers.py:434
 msgid "Select supplier (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:441
+#: part/serializers.py:445
 msgid "Select manufacturer (or leave blank to skip)"
 msgstr ""
 
-#: part/serializers.py:447
+#: part/serializers.py:451
 msgid "Manufacturer part number"
 msgstr ""
 
-#: part/serializers.py:453
+#: part/serializers.py:457
 msgid "Selected company is not a valid supplier"
 msgstr ""
 
-#: part/serializers.py:460
+#: part/serializers.py:464
 msgid "Selected company is not a valid manufacturer"
 msgstr ""
 
-#: part/serializers.py:471
+#: part/serializers.py:475
 msgid "Manufacturer part matching this MPN already exists"
 msgstr ""
 
-#: part/serializers.py:479
+#: part/serializers.py:483
 msgid "Supplier part matching this SKU already exists"
 msgstr ""
 
-#: part/serializers.py:738 part/templates/part/copy_part.html:9
+#: part/serializers.py:742 part/templates/part/copy_part.html:9
 #: templates/js/translated/part.js:471
 msgid "Duplicate Part"
 msgstr ""
 
-#: part/serializers.py:738
+#: part/serializers.py:742
 msgid "Copy initial data from another Part"
 msgstr ""
 
-#: part/serializers.py:743 templates/js/translated/part.js:102
+#: part/serializers.py:747 templates/js/translated/part.js:102
 msgid "Initial Stock"
 msgstr ""
 
-#: part/serializers.py:743
+#: part/serializers.py:747
 msgid "Create Part with initial stock quantity"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Supplier Information"
 msgstr ""
 
-#: part/serializers.py:748
+#: part/serializers.py:752
 msgid "Add initial supplier information for this part"
 msgstr ""
 
-#: part/serializers.py:754
+#: part/serializers.py:758
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: part/serializers.py:755
+#: part/serializers.py:759
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: part/serializers.py:961
+#: part/serializers.py:965
 msgid "Limit stocktake report to a particular part, and any variant parts"
 msgstr ""
 
-#: part/serializers.py:967
+#: part/serializers.py:971
 msgid "Limit stocktake report to a particular part category, and any child categories"
 msgstr ""
 
-#: part/serializers.py:973
+#: part/serializers.py:977
 msgid "Limit stocktake report to a particular stock location, and any child locations"
 msgstr ""
 
-#: part/serializers.py:978
+#: part/serializers.py:982
 msgid "Exclude External Stock"
 msgstr ""
 
-#: part/serializers.py:979
+#: part/serializers.py:983
 msgid "Exclude stock items in external locations"
 msgstr ""
 
-#: part/serializers.py:984
+#: part/serializers.py:988
 msgid "Generate Report"
 msgstr ""
 
-#: part/serializers.py:985
+#: part/serializers.py:989
 msgid "Generate report file containing calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:990
+#: part/serializers.py:994
 msgid "Update Parts"
 msgstr ""
 
-#: part/serializers.py:991
+#: part/serializers.py:995
 msgid "Update specified parts with calculated stocktake data"
 msgstr ""
 
-#: part/serializers.py:998
+#: part/serializers.py:1002
 msgid "Stocktake functionality is not enabled"
 msgstr ""
 
-#: part/serializers.py:1087
+#: part/serializers.py:1086
+msgid "Override calculated value for minimum price"
+msgstr ""
+
+#: part/serializers.py:1091
+msgid "Minimum price currency"
+msgstr ""
+
+#: part/serializers.py:1098
+msgid "Override calculated value for maximum price"
+msgstr ""
+
+#: part/serializers.py:1103
+msgid "Maximum price currency"
+msgstr ""
+
+#: part/serializers.py:1119
 msgid "Update"
 msgstr ""
 
-#: part/serializers.py:1088
+#: part/serializers.py:1120
 msgid "Update pricing for this part"
 msgstr ""
 
-#: part/serializers.py:1395
+#: part/serializers.py:1141
+#, python-brace-format
+msgid "Could not convert from provided currencies to {default_currency}"
+msgstr ""
+
+#: part/serializers.py:1145
+msgid "Minimum price must not be greater than maximum price"
+msgstr ""
+
+#: part/serializers.py:1146
+msgid "Maximum price must not be less than minimum price"
+msgstr ""
+
+#: part/serializers.py:1453
 msgid "Select part to copy BOM from"
 msgstr ""
 
-#: part/serializers.py:1403
+#: part/serializers.py:1461
 msgid "Remove Existing Data"
 msgstr ""
 
-#: part/serializers.py:1404
+#: part/serializers.py:1462
 msgid "Remove existing BOM items before copying"
 msgstr ""
 
-#: part/serializers.py:1409
+#: part/serializers.py:1467
 msgid "Include Inherited"
 msgstr ""
 
-#: part/serializers.py:1410
+#: part/serializers.py:1468
 msgid "Include BOM items which are inherited from templated parts"
 msgstr ""
 
-#: part/serializers.py:1415
+#: part/serializers.py:1473
 msgid "Skip Invalid Rows"
 msgstr ""
 
-#: part/serializers.py:1416
+#: part/serializers.py:1474
 msgid "Enable this option to skip invalid rows"
 msgstr ""
 
-#: part/serializers.py:1421
+#: part/serializers.py:1479
 msgid "Copy Substitute Parts"
 msgstr ""
 
-#: part/serializers.py:1422
+#: part/serializers.py:1480
 msgid "Copy substitute parts when duplicate BOM items"
 msgstr ""
 
-#: part/serializers.py:1462
+#: part/serializers.py:1520
 msgid "Clear Existing BOM"
 msgstr ""
 
-#: part/serializers.py:1463
+#: part/serializers.py:1521
 msgid "Delete existing BOM items before uploading"
 msgstr ""
 
-#: part/serializers.py:1493
+#: part/serializers.py:1551
 msgid "No part column specified"
 msgstr ""
 
-#: part/serializers.py:1537
+#: part/serializers.py:1595
 msgid "Multiple matching parts found"
 msgstr ""
 
-#: part/serializers.py:1540
+#: part/serializers.py:1598
 msgid "No matching part found"
 msgstr ""
 
-#: part/serializers.py:1543
+#: part/serializers.py:1601
 msgid "Part is not designated as a component"
 msgstr ""
 
-#: part/serializers.py:1552
+#: part/serializers.py:1610
 msgid "Quantity not provided"
 msgstr ""
 
-#: part/serializers.py:1560
+#: part/serializers.py:1618
 msgid "Invalid quantity"
 msgstr ""
 
-#: part/serializers.py:1581
+#: part/serializers.py:1639
 msgid "At least one BOM item is required"
 msgstr ""
 
@@ -7065,8 +7111,8 @@ msgstr ""
 msgid "Hide Part Details"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:73
-#: part/templates/part/prices.html:216 templates/js/translated/pricing.js:485
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76
+#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485
 msgid "Supplier Pricing"
 msgstr ""
 
@@ -7081,8 +7127,8 @@ msgstr ""
 msgid "No supplier pricing available"
 msgstr ""
 
-#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:87
-#: part/templates/part/prices.html:239
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:250
 msgid "BOM Pricing"
 msgstr ""
 
@@ -7150,7 +7196,20 @@ msgstr ""
 msgid "Refresh Part Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:17
+msgid "Override Part Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:18
+#: templates/InvenTree/settings/settings_staff_js.html:80
+#: templates/InvenTree/settings/user.html:24
+#: templates/js/translated/helpers.js:100
+#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/prices.html:28 stock/admin.py:147
 #: stock/templates/stock/item_base.html:446
 #: templates/js/translated/company.js:1693
 #: templates/js/translated/company.js:1703
@@ -7158,65 +7217,73 @@ msgstr ""
 msgid "Last Updated"
 msgstr ""
 
-#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
+#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
 msgid "Price Category"
 msgstr ""
 
-#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
+#: part/templates/part/prices.html:38 part/templates/part/prices.html:128
 msgid "Minimum"
 msgstr ""
 
-#: part/templates/part/prices.html:36 part/templates/part/prices.html:118
+#: part/templates/part/prices.html:39 part/templates/part/prices.html:129
 msgid "Maximum"
 msgstr ""
 
-#: part/templates/part/prices.html:48 part/templates/part/prices.html:163
+#: part/templates/part/prices.html:51 part/templates/part/prices.html:174
 msgid "Internal Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:61 part/templates/part/prices.html:195
+#: part/templates/part/prices.html:64 part/templates/part/prices.html:206
 msgid "Purchase History"
 msgstr ""
 
-#: part/templates/part/prices.html:95 part/templates/part/prices.html:263
+#: part/templates/part/prices.html:98 part/templates/part/prices.html:274
 msgid "Variant Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:102
+#: part/templates/part/prices.html:106
+msgid "Pricing Overrides"
+msgstr ""
+
+#: part/templates/part/prices.html:113
 msgid "Overall Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:138 part/templates/part/prices.html:315
+#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
 msgid "Sale History"
 msgstr ""
 
-#: part/templates/part/prices.html:146
+#: part/templates/part/prices.html:157
 msgid "Sale price data is not available for this part"
 msgstr ""
 
-#: part/templates/part/prices.html:153
+#: part/templates/part/prices.html:164
 msgid "Price range data is not available for this part."
 msgstr ""
 
-#: part/templates/part/prices.html:164 part/templates/part/prices.html:196
-#: part/templates/part/prices.html:217 part/templates/part/prices.html:240
-#: part/templates/part/prices.html:264 part/templates/part/prices.html:287
-#: part/templates/part/prices.html:316
+#: part/templates/part/prices.html:175 part/templates/part/prices.html:207
+#: part/templates/part/prices.html:228 part/templates/part/prices.html:251
+#: part/templates/part/prices.html:275 part/templates/part/prices.html:298
+#: part/templates/part/prices.html:327
 msgid "Jump to overview"
 msgstr ""
 
-#: part/templates/part/prices.html:169
+#: part/templates/part/prices.html:180
 msgid "Add Internal Price Break"
 msgstr ""
 
-#: part/templates/part/prices.html:286
+#: part/templates/part/prices.html:297
 msgid "Sale Pricing"
 msgstr ""
 
-#: part/templates/part/prices.html:292
+#: part/templates/part/prices.html:303
 msgid "Add Sell Price Break"
 msgstr ""
 
+#: part/templates/part/pricing_javascript.html:24
+msgid "Update Pricing"
+msgstr ""
+
 #: part/templates/part/stock_count.html:7 templates/js/translated/part.js:704
 #: templates/js/translated/part.js:2138 templates/js/translated/part.js:2140
 msgid "No Stock"
@@ -9328,7 +9395,7 @@ msgid "Project Codes"
 msgstr ""
 
 #: templates/InvenTree/settings/project_codes.html:25
-#: templates/InvenTree/settings/settings_staff_js.html:196
+#: templates/InvenTree/settings/settings_staff_js.html:216
 msgid "New Project Code"
 msgstr ""
 
@@ -9369,14 +9436,6 @@ msgstr ""
 msgid "Rate"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:80
-#: templates/InvenTree/settings/user.html:24
-#: templates/js/translated/helpers.js:100
-#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3
-#: templates/notes_buttons.html:4
-msgid "Edit"
-msgstr ""
-
 #: templates/InvenTree/settings/settings_staff_js.html:81
 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105
 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629
@@ -9400,68 +9459,73 @@ msgstr ""
 msgid "No project codes found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:156
-#: templates/InvenTree/settings/settings_staff_js.html:170
+#: templates/InvenTree/settings/settings_staff_js.html:158
+#: templates/js/translated/build.js:2216
+msgid "group"
+msgstr ""
+
+#: templates/InvenTree/settings/settings_staff_js.html:175
+#: templates/InvenTree/settings/settings_staff_js.html:189
 msgid "Edit Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:157
-#: templates/InvenTree/settings/settings_staff_js.html:183
+#: templates/InvenTree/settings/settings_staff_js.html:176
+#: templates/InvenTree/settings/settings_staff_js.html:203
 msgid "Delete Project Code"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:265
+#: templates/InvenTree/settings/settings_staff_js.html:285
 msgid "No category parameter templates found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:288
+#: templates/InvenTree/settings/settings_staff_js.html:308
 #: templates/js/translated/part.js:1645
 msgid "Edit Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:289
+#: templates/InvenTree/settings/settings_staff_js.html:309
 #: templates/js/translated/part.js:1646
 msgid "Delete Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:306
+#: templates/InvenTree/settings/settings_staff_js.html:326
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:353
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:388
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:418
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:420
+#: templates/InvenTree/settings/settings_staff_js.html:440
 msgid "No stock location types found"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:441
+#: templates/InvenTree/settings/settings_staff_js.html:461
 msgid "Location count"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
+#: templates/InvenTree/settings/settings_staff_js.html:466
+#: templates/InvenTree/settings/settings_staff_js.html:480
 msgid "Edit Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:447
+#: templates/InvenTree/settings/settings_staff_js.html:467
 msgid "Delete Location type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:470
+#: templates/InvenTree/settings/settings_staff_js.html:490
 msgid "Delete Location Type"
 msgstr ""
 
-#: templates/InvenTree/settings/settings_staff_js.html:480
+#: templates/InvenTree/settings/settings_staff_js.html:500
 #: templates/InvenTree/settings/stock.html:35
 msgid "New Location Type"
 msgstr ""
@@ -10804,10 +10868,6 @@ msgstr ""
 msgid "No user information"
 msgstr ""
 
-#: templates/js/translated/build.js:2216
-msgid "group"
-msgstr ""
-
 #: templates/js/translated/build.js:2377
 #: templates/js/translated/sales_order.js:1646
 msgid "Edit stock allocation"
diff --git a/src/frontend/src/locales/bg/messages.po b/src/frontend/src/locales/bg/messages.po
index 0f81352b98..21bfe1742a 100644
--- a/src/frontend/src/locales/bg/messages.po
+++ b/src/frontend/src/locales/bg/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: bg\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:06\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Bulgarian\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/cs/messages.po b/src/frontend/src/locales/cs/messages.po
index 62ba4c1a27..2130d748df 100644
--- a/src/frontend/src/locales/cs/messages.po
+++ b/src/frontend/src/locales/cs/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: cs\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:06\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Czech\n"
 "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/da/messages.po b/src/frontend/src/locales/da/messages.po
index c81268b2b9..6e3e371c62 100644
--- a/src/frontend/src/locales/da/messages.po
+++ b/src/frontend/src/locales/da/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: da\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:06\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Danish\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/de/messages.po b/src/frontend/src/locales/de/messages.po
index e72639c5ad..74cbd72183 100644
--- a/src/frontend/src/locales/de/messages.po
+++ b/src/frontend/src/locales/de/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: de\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:06\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: German\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/el/messages.po b/src/frontend/src/locales/el/messages.po
index f423b57e44..0bf23c214d 100644
--- a/src/frontend/src/locales/el/messages.po
+++ b/src/frontend/src/locales/el/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: el\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:06\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Greek\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/en/messages.po b/src/frontend/src/locales/en/messages.po
index bbfcb6e56d..9c72e5b04e 100644
--- a/src/frontend/src/locales/en/messages.po
+++ b/src/frontend/src/locales/en/messages.po
@@ -1942,32 +1942,32 @@ msgstr "Add group"
 msgid "Added group"
 msgstr "Added group"
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr "Edit project code"
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr "Project code updated"
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr "Delete project code"
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr "Project code deleted"
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr "Are you sure you want to remove this project code?"
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr "Add project code"
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr "Added project code"
 
diff --git a/src/frontend/src/locales/es-mx/messages.po b/src/frontend/src/locales/es-mx/messages.po
index d28cd96986..58226fc652 100644
--- a/src/frontend/src/locales/es-mx/messages.po
+++ b/src/frontend/src/locales/es-mx/messages.po
@@ -1911,32 +1911,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/es/messages.po b/src/frontend/src/locales/es/messages.po
index 21a748bd5e..ed1ac6aafa 100644
--- a/src/frontend/src/locales/es/messages.po
+++ b/src/frontend/src/locales/es/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: es_MX\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"PO-Revision-Date: 2023-11-23 00:37\n"
 "Last-Translator: \n"
 "Language-Team: Spanish, Mexico\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/fa/messages.po b/src/frontend/src/locales/fa/messages.po
index 451a78f034..727615c25b 100644
--- a/src/frontend/src/locales/fa/messages.po
+++ b/src/frontend/src/locales/fa/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: fa\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"PO-Revision-Date: 2023-11-23 00:37\n"
 "Last-Translator: \n"
 "Language-Team: Persian\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/fi/messages.po b/src/frontend/src/locales/fi/messages.po
index 7ede93e72c..dddcb48ed6 100644
--- a/src/frontend/src/locales/fi/messages.po
+++ b/src/frontend/src/locales/fi/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: fi\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Finnish\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/fr/messages.po b/src/frontend/src/locales/fr/messages.po
index 45f5ca50c1..2a3358528d 100644
--- a/src/frontend/src/locales/fr/messages.po
+++ b/src/frontend/src/locales/fr/messages.po
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
@@ -3677,4 +3677,3 @@ msgstr "L'interface utilisateur de la plateforme est optimisée pour les tablett
 #: src/views/MobileAppView.tsx:23
 msgid "Read the docs"
 msgstr "Lire la documentation"
-
diff --git a/src/frontend/src/locales/he/messages.po b/src/frontend/src/locales/he/messages.po
index f78b6a957f..6af58b8ca3 100644
--- a/src/frontend/src/locales/he/messages.po
+++ b/src/frontend/src/locales/he/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: he\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Hebrew\n"
 "Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/hi/messages.po b/src/frontend/src/locales/hi/messages.po
index 3536d0a7dc..c0391abb6f 100644
--- a/src/frontend/src/locales/hi/messages.po
+++ b/src/frontend/src/locales/hi/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: hi\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"PO-Revision-Date: 2023-11-23 00:37\n"
 "Last-Translator: \n"
 "Language-Team: Hindi\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/hu/messages.po b/src/frontend/src/locales/hu/messages.po
index 42391cdc79..8b0b877570 100644
--- a/src/frontend/src/locales/hu/messages.po
+++ b/src/frontend/src/locales/hu/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: hu\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Hungarian\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/id/messages.po b/src/frontend/src/locales/id/messages.po
index a5bae56b9d..95e77fbd4a 100644
--- a/src/frontend/src/locales/id/messages.po
+++ b/src/frontend/src/locales/id/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: id\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"PO-Revision-Date: 2023-11-23 00:37\n"
 "Last-Translator: \n"
 "Language-Team: Indonesian\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/it/messages.po b/src/frontend/src/locales/it/messages.po
index 79d786b179..b76769fdce 100644
--- a/src/frontend/src/locales/it/messages.po
+++ b/src/frontend/src/locales/it/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: it\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Italian\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/ja/messages.po b/src/frontend/src/locales/ja/messages.po
index 54de33e8d3..7af3f3016e 100644
--- a/src/frontend/src/locales/ja/messages.po
+++ b/src/frontend/src/locales/ja/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: ja\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Japanese\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/ko/messages.po b/src/frontend/src/locales/ko/messages.po
index 28a85e35de..66b425be15 100644
--- a/src/frontend/src/locales/ko/messages.po
+++ b/src/frontend/src/locales/ko/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: ko\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Korean\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/nl/messages.po b/src/frontend/src/locales/nl/messages.po
index 97913c5e5d..d893ab87af 100644
--- a/src/frontend/src/locales/nl/messages.po
+++ b/src/frontend/src/locales/nl/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: nl\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Dutch\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/no/messages.po b/src/frontend/src/locales/no/messages.po
index 93cd5d91ff..1a7ee5f1cf 100644
--- a/src/frontend/src/locales/no/messages.po
+++ b/src/frontend/src/locales/no/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: no\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Norwegian\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/pl/messages.po b/src/frontend/src/locales/pl/messages.po
index 6a2460b6d5..03d17204f4 100644
--- a/src/frontend/src/locales/pl/messages.po
+++ b/src/frontend/src/locales/pl/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: pl\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Polish\n"
 "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
@@ -63,11 +63,11 @@ msgstr ""
 
 #: src/components/forms/AuthenticationForm.tsx:50
 msgid "Login successful"
-msgstr ""
+msgstr "Zalogowano pomyślnie"
 
 #: src/components/forms/AuthenticationForm.tsx:51
 msgid "Welcome back!"
-msgstr ""
+msgstr "Witamy ponownie!"
 
 #: src/components/forms/AuthenticationForm.tsx:53
 #~ msgid "Login successfull"
@@ -76,7 +76,7 @@ msgstr ""
 #: src/components/forms/AuthenticationForm.tsx:64
 #: src/functions/auth.tsx:102
 msgid "Mail delivery successful"
-msgstr ""
+msgstr "Wiadomość dostarczona"
 
 #: src/components/forms/AuthenticationForm.tsx:65
 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too."
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/pseudo-LOCALE/messages.po b/src/frontend/src/locales/pseudo-LOCALE/messages.po
index ca636c3e0d..ba12a31a42 100644
--- a/src/frontend/src/locales/pseudo-LOCALE/messages.po
+++ b/src/frontend/src/locales/pseudo-LOCALE/messages.po
@@ -1986,32 +1986,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/pt-br/messages.po b/src/frontend/src/locales/pt-br/messages.po
index 21341e8c14..90b6c8edf4 100644
--- a/src/frontend/src/locales/pt-br/messages.po
+++ b/src/frontend/src/locales/pt-br/messages.po
@@ -1911,32 +1911,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/pt/messages.po b/src/frontend/src/locales/pt/messages.po
index 94c4c1f48a..dd66a34c55 100644
--- a/src/frontend/src/locales/pt/messages.po
+++ b/src/frontend/src/locales/pt/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: pt\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"PO-Revision-Date: 2023-11-23 00:37\n"
 "Last-Translator: \n"
 "Language-Team: Portuguese, Brazilian\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/ru/messages.po b/src/frontend/src/locales/ru/messages.po
index fca682daa7..36e188d601 100644
--- a/src/frontend/src/locales/ru/messages.po
+++ b/src/frontend/src/locales/ru/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: ru\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Russian\n"
 "Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/sl/messages.po b/src/frontend/src/locales/sl/messages.po
index 35598733e7..d8d68245d5 100644
--- a/src/frontend/src/locales/sl/messages.po
+++ b/src/frontend/src/locales/sl/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: sl\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Slovenian\n"
 "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/sv/messages.po b/src/frontend/src/locales/sv/messages.po
index baa017f121..d300de91d5 100644
--- a/src/frontend/src/locales/sv/messages.po
+++ b/src/frontend/src/locales/sv/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: sv\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Swedish\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/th/messages.po b/src/frontend/src/locales/th/messages.po
index 379c3b0db8..93d54dbcf7 100644
--- a/src/frontend/src/locales/th/messages.po
+++ b/src/frontend/src/locales/th/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: th\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"PO-Revision-Date: 2023-11-23 00:37\n"
 "Last-Translator: \n"
 "Language-Team: Thai\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/tr/messages.po b/src/frontend/src/locales/tr/messages.po
index 679463a551..b5453788ee 100644
--- a/src/frontend/src/locales/tr/messages.po
+++ b/src/frontend/src/locales/tr/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: tr\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"PO-Revision-Date: 2023-11-23 00:36\n"
 "Last-Translator: \n"
 "Language-Team: Turkish\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/vi/messages.po b/src/frontend/src/locales/vi/messages.po
index 97b670738a..4b898c8867 100644
--- a/src/frontend/src/locales/vi/messages.po
+++ b/src/frontend/src/locales/vi/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: vi\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"PO-Revision-Date: 2023-11-23 00:37\n"
 "Last-Translator: \n"
 "Language-Team: Vietnamese\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr "Sửa mã dự án"
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr "Mã dự án đã được cập nhật"
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr "Xóa mã dự án"
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr "Mã dự án đã được xóa"
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr "Bạn có chắc chắn là muốn xóa mã dự án này?"
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr "Thêm mã dự án"
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr "Mã dự án đã được thêm"
 
diff --git a/src/frontend/src/locales/zh-hans/messages.po b/src/frontend/src/locales/zh-hans/messages.po
index 303aa21f0f..6db6ce6106 100644
--- a/src/frontend/src/locales/zh-hans/messages.po
+++ b/src/frontend/src/locales/zh-hans/messages.po
@@ -1911,32 +1911,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/zh-hant/messages.po b/src/frontend/src/locales/zh-hant/messages.po
index 496e4c8951..81355cc1a7 100644
--- a/src/frontend/src/locales/zh-hant/messages.po
+++ b/src/frontend/src/locales/zh-hant/messages.po
@@ -1911,32 +1911,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""
 
diff --git a/src/frontend/src/locales/zh/messages.po b/src/frontend/src/locales/zh/messages.po
index 61bdc9075b..232322af74 100644
--- a/src/frontend/src/locales/zh/messages.po
+++ b/src/frontend/src/locales/zh/messages.po
@@ -8,7 +8,7 @@ msgstr ""
 "Language: zh\n"
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2023-11-21 00:07\n"
+"PO-Revision-Date: 2023-11-23 00:37\n"
 "Last-Translator: \n"
 "Language-Team: Chinese Traditional\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
@@ -1947,32 +1947,32 @@ msgstr ""
 msgid "Added group"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:49
+#: src/components/tables/settings/ProjectCodeTable.tsx:50
 msgid "Edit project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:55
+#: src/components/tables/settings/ProjectCodeTable.tsx:57
 msgid "Project code updated"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:65
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
 msgid "Delete project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:66
+#: src/components/tables/settings/ProjectCodeTable.tsx:68
 msgid "Project code deleted"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:69
+#: src/components/tables/settings/ProjectCodeTable.tsx:71
 msgid "Are you sure you want to remove this project code?"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:82
-#: src/components/tables/settings/ProjectCodeTable.tsx:96
+#: src/components/tables/settings/ProjectCodeTable.tsx:84
+#: src/components/tables/settings/ProjectCodeTable.tsx:99
 msgid "Add project code"
 msgstr ""
 
-#: src/components/tables/settings/ProjectCodeTable.tsx:88
+#: src/components/tables/settings/ProjectCodeTable.tsx:91
 msgid "Added project code"
 msgstr ""