diff --git a/InvenTree/locale/bg/LC_MESSAGES/django.po b/InvenTree/locale/bg/LC_MESSAGES/django.po
index 4c5aafe7734c..da54fbfbe7d6 100644
--- a/InvenTree/locale/bg/LC_MESSAGES/django.po
+++ b/InvenTree/locale/bg/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:45\n"
"Last-Translator: \n"
"Language-Team: Bulgarian\n"
@@ -57,9 +57,9 @@ msgstr "Въведи дата"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr ""
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr ""
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -444,12 +444,12 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:61 part/models.py:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr ""
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,7 +474,9 @@ msgstr ""
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
msgstr ""
@@ -540,123 +542,127 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr ""
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr ""
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr ""
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr ""
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr "Хинди"
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr "Унгарски"
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "Италиански"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "Японски"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "Корейски"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "Нидерландски"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "Норвежки"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "Полски"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "Португалски"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr "Португалски (Бразилия)"
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "Руски"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr "Словенски"
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "Шведски"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "Тайландски"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "Турски"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "Виетнамски"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr "Китайски (опростен)"
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr "Китайски (традиционен)"
@@ -916,14 +922,14 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -991,8 +997,8 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1022,10 +1028,10 @@ msgstr ""
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1043,7 +1049,7 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1149,7 +1155,7 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr ""
@@ -1244,7 +1250,7 @@ msgstr ""
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1259,9 +1265,9 @@ msgstr ""
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1276,7 +1282,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1316,11 +1322,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -1429,8 +1435,8 @@ msgstr ""
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1466,7 +1472,7 @@ msgstr ""
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1680,8 +1686,8 @@ msgstr ""
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr ""
@@ -2364,7 +2370,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3403,7 +3409,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3868,7 +3874,7 @@ msgstr ""
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3879,7 +3885,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3939,7 +3945,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4062,7 +4068,7 @@ msgid "Delete image"
msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4564,7 +4570,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4650,15 +4656,15 @@ msgstr ""
msgid "received by"
msgstr ""
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr ""
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr ""
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr ""
@@ -4674,11 +4680,11 @@ msgstr ""
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr ""
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr ""
@@ -4749,8 +4755,8 @@ msgid "deleted"
msgstr ""
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr ""
@@ -4827,7 +4833,7 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
@@ -4876,77 +4882,77 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr ""
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr ""
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5490,12 +5496,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
@@ -5572,12 +5578,12 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5618,7 +5624,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr ""
@@ -5680,7 +5686,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5761,7 +5767,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr ""
@@ -5785,7 +5791,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5896,155 +5902,155 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6056,318 +6062,318 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr ""
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr ""
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr ""
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr ""
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr ""
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr ""
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr ""
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr ""
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr ""
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr ""
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr ""
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3820
+#: part/models.py:3824
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr ""
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7399,43 +7405,73 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+msgid "Multiple matching line items found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:503
+msgid "No matching line item found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+msgid "Barcode does not match an existing stock item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:563
+msgid "Stock item does not match line item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+msgid "Stock item allocated to sales order"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:603
+msgid "Not enough information"
+msgstr ""
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7471,7 +7507,7 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
+msgid "Purchase Order to allocate items against"
msgstr ""
#: plugin/base/barcodes/serializers.py:88
@@ -7494,6 +7530,30 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+msgid "Sales Order to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:147
+msgid "Sales order is not pending"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+msgid "Sales order shipment to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:167
+msgid "Shipment has already been delivered"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:173
+msgid "Quantity to allocate"
+msgstr ""
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8048,12 +8108,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr ""
@@ -8385,104 +8445,104 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr ""
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr ""
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10355,73 +10415,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr ""
@@ -10970,11 +11030,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13405,7 +13460,8 @@ msgstr ""
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
msgstr ""
@@ -13580,4 +13636,3 @@ msgstr ""
#: users/models.py:410
msgid "Permission to delete items"
msgstr ""
-
diff --git a/InvenTree/locale/cs/LC_MESSAGES/django.po b/InvenTree/locale/cs/LC_MESSAGES/django.po
index 30c615e2ea9c..52d35226a08e 100644
--- a/InvenTree/locale/cs/LC_MESSAGES/django.po
+++ b/InvenTree/locale/cs/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:45\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
@@ -57,9 +57,9 @@ msgstr "Zadejte datum"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr "Chybějící soubor"
msgid "Missing external link"
msgstr "Chybějící externí odkaz"
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr "Komentář k souboru"
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr "Neplatný výběr"
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr "Název"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -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:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr "Musí být platné číslo"
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,7 +474,9 @@ msgstr ""
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
msgstr ""
@@ -540,123 +542,127 @@ msgstr "URL souboru vzdáleného obrázku"
msgid "Downloading images from remote URL is not enabled"
msgstr "Stahování obrázků ze vzdálené URL není povoleno"
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr "Čeština"
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr "Dánština"
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr "Němčina"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr "Řečtina"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr "Angličtina"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr "Španělština"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr "Španělština (Mexiko)"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr "Farsi / Perština"
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr "Finština"
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr "Francouzština"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr "Hebrejština"
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr ""
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr "Maďarština"
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "Italština"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "Japonština"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "Korejština"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "Nizozemština"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "Norština"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "Polština"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "Portugalština"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr "Portugalština (Brazilská)"
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "Ruština"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr "Slovinština"
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "Švédština"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "Thajština"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "Turečtina"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "Vietnamština"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr ""
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr ""
@@ -916,14 +922,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:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -991,8 +997,8 @@ msgid "Build Order Reference"
msgstr "Referenční číslo objednávky"
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1022,10 +1028,10 @@ msgstr "Příkaz sestavení pro který je toto sestavení přiděleno"
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1043,7 +1049,7 @@ msgstr "Příkaz sestavení pro který je toto sestavení přiděleno"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1149,7 +1155,7 @@ msgstr "Cílové datum dokončení"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Cílové datum dokončení sestavení. Sestavení bude po tomto datu v prodlení."
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr "Datum dokončení"
@@ -1244,7 +1250,7 @@ msgstr "Výstup sestavení neodpovídá příkazu sestavení"
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr "Množství musí být vyšší než nula"
@@ -1259,9 +1265,9 @@ msgstr ""
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1276,7 +1282,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1316,11 +1322,11 @@ msgstr "Položka sestavení musí specifikovat výstup sestavení, protože hlav
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Zabrané množství ({q}) nesmí překročit dostupné skladové množství ({a})"
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr "Skladová položka je nadměrně zabrána"
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr "Zabrané množství musí být větší než nula"
@@ -1429,8 +1435,8 @@ msgstr ""
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1466,7 +1472,7 @@ msgstr ""
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1680,8 +1686,8 @@ msgstr ""
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr ""
@@ -2364,7 +2370,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3403,7 +3409,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3868,7 +3874,7 @@ msgstr "Název parametru"
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3879,7 +3885,7 @@ msgid "Parameter value"
msgstr "Hodnota parametru"
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3939,7 +3945,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4062,7 +4068,7 @@ msgid "Delete image"
msgstr "Smazat obrázek"
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4564,7 +4570,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4650,15 +4656,15 @@ msgstr ""
msgid "received by"
msgstr ""
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr ""
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr ""
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr ""
@@ -4674,11 +4680,11 @@ msgstr ""
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr ""
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr ""
@@ -4749,8 +4755,8 @@ msgid "deleted"
msgstr ""
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr ""
@@ -4827,7 +4833,7 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
@@ -4876,77 +4882,77 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr ""
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr ""
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5490,12 +5496,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
@@ -5572,12 +5578,12 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5618,7 +5624,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr ""
@@ -5680,7 +5686,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5761,7 +5767,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr ""
@@ -5785,7 +5791,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5896,155 +5902,155 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6056,318 +6062,318 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr ""
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr ""
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr ""
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr ""
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr ""
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr ""
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr ""
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr ""
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr ""
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr ""
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr ""
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3820
+#: part/models.py:3824
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr ""
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7399,43 +7405,81 @@ msgstr "Činnost nebyla specifikována"
msgid "No matching action found"
msgstr "Nebyla nalezena odpovídající činnost"
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr "Pro data čárového kódu nebyla nalezena shoda"
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr "Pro data čárového kódu byla nalezena shoda"
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+#, fuzzy
+#| msgid "No matching action found"
+msgid "Multiple matching line items found"
+msgstr "Nebyla nalezena odpovídající činnost"
+
+#: plugin/base/barcodes/api.py:503
+#, fuzzy
+#| msgid "No matching action found"
+msgid "No matching line item found"
+msgstr "Nebyla nalezena odpovídající činnost"
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+msgid "Barcode does not match an existing stock item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:563
+msgid "Stock item does not match line item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+#, fuzzy
+#| msgid "Stock item is over-allocated"
+msgid "Stock item allocated to sales order"
+msgstr "Skladová položka je nadměrně zabrána"
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "Edit company information"
+msgid "Not enough information"
+msgstr "Upravit údaje o společnosti"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7471,7 +7515,7 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
+msgid "Purchase Order to allocate items against"
msgstr ""
#: plugin/base/barcodes/serializers.py:88
@@ -7494,6 +7538,30 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+msgid "Sales Order to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:147
+msgid "Sales order is not pending"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+msgid "Sales order shipment to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:167
+msgid "Shipment has already been delivered"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:173
+msgid "Quantity to allocate"
+msgstr ""
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8048,12 +8116,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr ""
@@ -8385,104 +8453,104 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr ""
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr ""
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10355,73 +10423,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr ""
@@ -10970,11 +11038,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13405,7 +13468,8 @@ msgstr ""
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
msgstr ""
@@ -13580,4 +13644,3 @@ msgstr "Oprávnění k úpravě položek"
#: users/models.py:410
msgid "Permission to delete items"
msgstr "Oprávnění k odstranění položek"
-
diff --git a/InvenTree/locale/da/LC_MESSAGES/django.po b/InvenTree/locale/da/LC_MESSAGES/django.po
index 3a9936aecb35..8e700c630f36 100644
--- a/InvenTree/locale/da/LC_MESSAGES/django.po
+++ b/InvenTree/locale/da/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:45\n"
"Last-Translator: \n"
"Language-Team: Danish\n"
@@ -57,9 +57,9 @@ msgstr "Angiv dato"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr "Manglende fil"
msgid "Missing external link"
msgstr "Manglende eksternt link"
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr "Fil kommentar"
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr "Ugyldigt valg"
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr "Navn"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -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:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr "Skal være et gyldigt tal"
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,7 +474,9 @@ msgstr ""
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
msgstr ""
@@ -540,123 +542,127 @@ msgstr "URL til ekstern billedfil"
msgid "Downloading images from remote URL is not enabled"
msgstr "Download af billeder fra ekstern URL er ikke aktiveret"
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr "Tjekkisk"
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr "Dansk"
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr "Tysk"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr "Græsk"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr "Engelsk"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr "Spansk"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr "Spansk (Mexikansk)"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr "Farsi / Persisk"
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr ""
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr "Fransk"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr "Hebraisk"
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr ""
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr "Ungarsk"
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "Italiensk"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "Japansk"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "Koreansk"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "Hollandsk"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "Norsk"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "Polsk"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "Portugisisk"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr "Portugisisk (Brasilien)"
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "Russisk"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr "Slovensk"
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "Svensk"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "Thailandsk"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "Tyrkisk"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "Vietnamesisk"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr ""
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr ""
@@ -916,14 +922,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:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -991,8 +997,8 @@ msgid "Build Order Reference"
msgstr "Produktionsordre reference"
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1022,10 +1028,10 @@ msgstr "Produktionsordre som er tildelt denne produktion"
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1043,7 +1049,7 @@ msgstr "Produktionsordre som er tildelt denne produktion"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1149,7 +1155,7 @@ msgstr "Projekteret afslutningsdato"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr "Dato for afslutning"
@@ -1244,7 +1250,7 @@ msgstr ""
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1259,9 +1265,9 @@ msgstr ""
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1276,7 +1282,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1316,11 +1322,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -1429,8 +1435,8 @@ msgstr ""
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1466,7 +1472,7 @@ msgstr ""
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1680,8 +1686,8 @@ msgstr ""
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr ""
@@ -2364,7 +2370,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3403,7 +3409,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3868,7 +3874,7 @@ msgstr ""
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3879,7 +3885,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3939,7 +3945,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4062,7 +4068,7 @@ msgid "Delete image"
msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4564,7 +4570,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4650,15 +4656,15 @@ msgstr ""
msgid "received by"
msgstr ""
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr ""
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr ""
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr ""
@@ -4674,11 +4680,11 @@ msgstr ""
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr ""
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr ""
@@ -4749,8 +4755,8 @@ msgid "deleted"
msgstr ""
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr ""
@@ -4827,7 +4833,7 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
@@ -4876,77 +4882,77 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr ""
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr ""
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5490,12 +5496,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
@@ -5572,12 +5578,12 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5618,7 +5624,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr ""
@@ -5680,7 +5686,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5761,7 +5767,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr ""
@@ -5785,7 +5791,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5896,155 +5902,155 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6056,318 +6062,318 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr ""
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr ""
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr ""
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr ""
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr ""
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr ""
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr ""
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr ""
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr ""
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr ""
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr ""
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3820
+#: part/models.py:3824
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr ""
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7399,43 +7405,77 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+msgid "Multiple matching line items found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:503
+msgid "No matching line item found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+msgid "Barcode does not match an existing stock item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:563
+msgid "Stock item does not match line item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+#, fuzzy
+#| msgid "Stock item created"
+msgid "Stock item allocated to sales order"
+msgstr "Lager-element oprettet"
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "Edit User Information"
+msgid "Not enough information"
+msgstr "Rediger brugerinformation"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7471,7 +7511,7 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
+msgid "Purchase Order to allocate items against"
msgstr ""
#: plugin/base/barcodes/serializers.py:88
@@ -7494,6 +7534,30 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+msgid "Sales Order to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:147
+msgid "Sales order is not pending"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+msgid "Sales order shipment to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:167
+msgid "Shipment has already been delivered"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:173
+msgid "Quantity to allocate"
+msgstr ""
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8048,12 +8112,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr ""
@@ -8385,104 +8449,104 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr ""
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr ""
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10355,73 +10419,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr ""
@@ -10970,11 +11034,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13405,7 +13464,8 @@ msgstr ""
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
msgstr ""
@@ -13580,4 +13640,3 @@ msgstr ""
#: users/models.py:410
msgid "Permission to delete items"
msgstr ""
-
diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index 12115ec42230..1c7fc848ce51 100644
--- a/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:45\n"
"Last-Translator: \n"
"Language-Team: German\n"
@@ -57,9 +57,9 @@ msgstr "Datum eingeben"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr "Fehlende Datei"
msgid "Missing external link"
msgstr "Fehlender externer Link"
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr "Datei-Kommentar"
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr "Ungültige Auswahl"
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr "Name"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -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:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr "Muss eine gültige Nummer sein"
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,9 +474,13 @@ msgstr "Willkommen bei {current_site.name}"
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
-msgstr "Ihr Konto wurde erstellt.\n\n"
+msgstr ""
+"Ihr Konto wurde erstellt.\n"
+"\n"
"Bitte verwenden Sie die Passwort-Zurücksetzen-Funktion, um Zugriff zu erhalten (https://{domain})."
#: InvenTree/serializers.py:519
@@ -541,123 +545,127 @@ msgstr "URL der Remote-Bilddatei"
msgid "Downloading images from remote URL is not enabled"
msgstr "Das Herunterladen von Bildern von Remote-URLs ist nicht aktiviert"
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr "Bulgarisch"
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr "Tschechisch"
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr "Dänisch"
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr "Deutsch"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr "Griechisch"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr "Englisch"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr "Spanisch"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr "Spanisch (Mexikanisch)"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr "Persisch"
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr "Beenden"
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr "Französisch"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr "Hebräisch"
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr "Hindi"
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr "Ungarisch"
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "Italienisch"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "Japanisch"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "Koreanisch"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "Niederländisch"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "Norwegisch"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "Polnisch"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "Portugiesisch"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr "Portugiesisch (Brasilien)"
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "Russisch"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr "Slowenisch"
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "Schwedisch"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "Thailändisch"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "Türkisch"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "Vietnamesisch"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr "Chinesisch (Vereinfacht)"
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr "Chinesisch (Traditionell)"
@@ -917,14 +925,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:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -992,8 +1000,8 @@ msgid "Build Order Reference"
msgstr "Bauauftragsreferenz"
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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,10 +1031,10 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1044,7 +1052,7 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1150,7 +1158,7 @@ msgstr "geplantes Fertigstellungsdatum"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Zieldatum für Bauauftrag-Fertigstellung."
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr "Fertigstellungsdatum"
@@ -1245,7 +1253,7 @@ msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein"
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr "Anzahl muss größer Null sein"
@@ -1260,9 +1268,9 @@ msgstr "Objekt bauen"
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1277,7 +1285,7 @@ msgstr "Objekt bauen"
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1317,11 +1325,11 @@ msgstr "Bauauftragsposition muss ein Endprodukt festlegen, da der übergeordnete
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Zugewiesene Menge ({q}) darf nicht verfügbare Menge ({a}) übersteigen"
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr "BestandObjekt ist zu oft zugewiesen"
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr "Reserviermenge muss größer null sein"
@@ -1430,8 +1438,8 @@ msgstr "Eine Liste von Endprodukten muss angegeben werden"
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1467,7 +1475,7 @@ msgstr "Lagerort für fertige Endprodukte"
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1681,8 +1689,8 @@ msgstr "QR-Code anzeigen"
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr "Barcode abhängen"
@@ -2365,7 +2373,7 @@ msgstr "Kategorie-Parametervorlage kopieren"
msgid "Copy category parameter templates when creating a part"
msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird"
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3404,7 +3412,7 @@ msgid "Price break quantity"
msgstr "Preisstaffelungs Anzahl"
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3869,7 +3877,7 @@ msgstr "Parametername"
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3880,7 +3888,7 @@ msgid "Parameter value"
msgstr "Parameterwert"
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3940,7 +3948,7 @@ msgid "Supplier part description"
msgstr "Zuliefererbeschreibung des Teils"
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4063,7 +4071,7 @@ msgid "Delete image"
msgstr "Bild löschen"
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4565,7 +4573,7 @@ msgstr "Keine passende Bestellung gefunden"
msgid "Purchase Order"
msgstr "Bestellung"
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4651,15 +4659,15 @@ msgstr "Zulieferer Bestellreferenz"
msgid "received by"
msgstr "Empfangen von"
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr "Aufgabedatum"
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr "Datum an dem die Bestellung aufgegeben wurde"
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr "Datum an dem der Auftrag fertigstellt wurde"
@@ -4675,11 +4683,11 @@ msgstr "Anzahl muss eine positive Zahl sein"
msgid "Company to which the items are being sold"
msgstr "Firma an die die Teile verkauft werden"
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr "Kundenreferenz"
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr "Bestellreferenz"
@@ -4750,8 +4758,8 @@ msgid "deleted"
msgstr "gelöscht"
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr "Bestellung"
@@ -4828,7 +4836,7 @@ msgstr "Kontrolliert von"
msgid "User who checked this shipment"
msgstr "Benutzer, der diese Sendung kontrolliert hat"
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr "Sendung"
@@ -4877,77 +4885,77 @@ msgstr "Kann Lagerartikel keiner Zeile ohne Teil hinzufügen"
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten"
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr "Anzahl für serialisierte Lagerartikel muss 1 sein"
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr "Auftrag gehört nicht zu Sendung"
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr "Sendung gehört nicht zu Auftrag"
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr "Position"
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr "Sendungsnummer-Referenz"
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr "Position"
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr "Lagerartikel für Zuordnung auswählen"
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr "Anzahl für Bestandszuordnung eingeben"
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr "Rücksendungsreferenz"
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr "Firma von der die Artikel zurückgeschickt werden"
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr "Status der Rücksendung"
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr "Nur serialisierte Artikel können einer Rücksendung zugeordnet werden"
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr "Artikel zur Rücksendung auswählen"
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr "Empfangsdatum"
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr "Das Datum des Empfangs dieses Rücksendeartikels"
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr "Ergebnis"
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr "Kosten für die Rückgabe oder Reparatur dieses Objektes"
@@ -5491,12 +5499,12 @@ 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:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr "Teil-ID"
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr "Name des Teils"
@@ -5573,12 +5581,12 @@ msgstr "Benutzt in"
msgid "Building"
msgstr "Im Bau"
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr "Minimale Kosten"
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr "Maximale Kosten"
@@ -5619,7 +5627,7 @@ msgstr "Stücklisten-Position ID"
msgid "Parent IPN"
msgstr "Übergeordnete IPN"
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr "Teil IPN"
@@ -5681,7 +5689,7 @@ msgstr "Verfügbarer Bestand"
msgid "Input quantity for price calculation"
msgstr "Menge für die Preisberechnung"
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Teil-Kategorie"
@@ -5762,7 +5770,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:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr "Name des Teils"
@@ -5786,7 +5794,7 @@ msgstr "Artikelbeschreibung (optional)"
msgid "Part keywords to improve visibility in search results"
msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5897,155 +5905,155 @@ msgstr "Letzte Inventur"
msgid "Sell multiple"
msgstr "Mehrere verkaufen"
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr "Währung für die Berechnung der Preise im Cache"
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr "Minimale Stücklisten Kosten"
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr "Minimale Kosten für Teile"
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr "Maximale Stücklisten Kosten"
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr "Maximale Kosten für Teile"
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr "Minimale Einkaufskosten"
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr "Minimale historische Kaufkosten"
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr "Maximale Einkaufskosten"
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr "Maximale historische Einkaufskosten"
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr "Minimaler interner Preis"
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr "Minimale Kosten basierend auf den internen Staffelpreisen"
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr "Maximaler interner Preis"
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr "Maximale Kosten basierend auf internen Preisstaffeln"
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr "Minimaler Lieferantenpreis"
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr "Mindestpreis für Teil von externen Lieferanten"
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr "Maximaler Lieferantenpreis"
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr "Maximaler Preis für Teil von externen Lieferanten"
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr "Minimale Variantenkosten"
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr "Berechnete minimale Kosten für Variantenteile"
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr "Maximale Variantenkosten"
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr "Berechnete maximale Kosten für Variantenteile"
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr "Mindestkosten überschreiben"
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr "Maximale Kosten überschreiben"
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr "Berechnete Mindestkosten"
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr "Berechnete Maximalkosten"
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr "Mindestverkaufspreis"
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr "Mindestverkaufspreis basierend auf Staffelpreisen"
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr "Maximaler Verkaufspreis"
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr "Maximalverkaufspreis basierend auf Staffelpreisen"
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr "Mindestverkaufskosten"
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr "Minimaler historischer Verkaufspreis"
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr "Maximale Verkaufskosten"
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr "Maximaler historischer Verkaufspreis"
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr "Teil für die Inventur"
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr "Stückzahl"
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr "Anzahl einzelner Bestandseinträge zum Zeitpunkt der Inventur"
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr "Insgesamt verfügbarer Lagerbestand zum Zeitpunkt der Inventur"
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6057,318 +6065,318 @@ msgstr "Insgesamt verfügbarer Lagerbestand zum Zeitpunkt der Inventur"
msgid "Date"
msgstr "Datum"
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr "Datum der Inventur"
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr "Zusätzliche Notizen"
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr "Benutzer, der diese Inventur durchgeführt hat"
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr "Mindestbestandswert"
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr "Geschätzter Mindestwert des vorhandenen Bestands"
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr "Maximaler Bestandswert"
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr "Geschätzter Maximalwert des vorhandenen Bestands"
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr "Bericht"
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr "Inventur-Berichtsdatei (intern generiert)"
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr "Anzahl der Teile"
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr "Anzahl der Teile, die von der Inventur abgedeckt werden"
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr "Benutzer, der diesen Inventurbericht angefordert hat"
-#: part/models.py:3229
+#: part/models.py:3233
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:3246
+#: part/models.py:3250
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:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr "Test-Name"
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr "Namen für diesen Test eingeben"
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr "Test-Beschreibung"
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr "Beschreibung für diesen Test eingeben"
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr "Benötigt"
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr "Muss dieser Test erfolgreich sein?"
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr "Erfordert Wert"
-#: part/models.py:3285
+#: part/models.py:3289
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:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr "Anhang muss eingegeben werden"
-#: part/models.py:3291
+#: part/models.py:3295
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:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr "Checkbox-Parameter können keine Einheiten haben"
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr "Checkbox-Parameter können keine Auswahl haben"
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr "Auswahl muss einzigartig sein"
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr "Vorlagen-Name des Parameters muss eindeutig sein"
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr "Name des Parameters"
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr "Physikalische Einheiten für diesen Parameter"
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr "Parameter-Beschreibung"
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr "Checkbox"
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr "Ist dieser Parameter eine Checkbox?"
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr "Auswahlmöglichkeiten"
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr "Gültige Optionen für diesen Parameter (durch Kommas getrennt)"
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr "Ausgangsteil"
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr "Parameter Vorlage"
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr "Wert"
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr "Parameter Wert"
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr "Standard-Wert"
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr "Standard Parameter Wert"
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr "Teilnummer oder Teilname"
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr "Eindeutige Teil-ID"
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr "IPN-Wert des Teils"
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr "Stufe"
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr "Stücklistenebene"
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr "Stücklisten-Position"
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr "Ausgangsteil auswählen"
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr "Untergeordnetes Teil"
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr "Teil für die Nutzung in der Stückliste auswählen"
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil"
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr "Diese Stücklisten-Position ist optional"
-#: part/models.py:3787
+#: part/models.py:3791
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:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Überschuss"
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Geschätzter Ausschuss (absolut oder prozentual)"
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr "Referenz der Postion auf der Stückliste"
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr "Notizen zur Stücklisten-Position"
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr "Prüfsumme"
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr "überprüft"
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr "Diese Stücklistenposition wurde validiert"
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
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:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr "Varianten zulassen"
-#: part/models.py:3820
+#: part/models.py:3824
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:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr "Menge muss eine Ganzzahl sein"
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr "Zuliefererteil muss festgelegt sein"
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr "Stücklisten Ersatzteile"
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr "Ersatzteil kann nicht identisch mit dem Hauptteil sein"
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr "Übergeordnete Stücklisten Position"
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr "Ersatzteil"
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr "Teil 1"
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr "Teil 2"
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr "verknüpftes Teil auswählen"
-#: part/models.py:4120
+#: part/models.py:4124
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:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr "Doppelte Beziehung existiert bereits"
@@ -7400,43 +7408,85 @@ msgstr "Keine Aktion angegeben"
msgid "No matching action found"
msgstr "Keine passende Aktion gefunden"
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr "Keine Treffer für Barcode"
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr "Treffer für Barcode gefunden"
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr "Barcode entspricht einem bereits vorhandenen Artikel"
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr "Artikel wurde bereits erhalten"
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+#, fuzzy
+#| msgid "Multiple matching parts found"
+msgid "Multiple matching line items found"
+msgstr "Mehrere übereinstimmende Teile gefunden"
+
+#: plugin/base/barcodes/api.py:503
+#, fuzzy
+#| msgid "No matching line items"
+msgid "No matching line item found"
+msgstr "Keine passenden Positionen gefunden"
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+#, fuzzy
+#| msgid "Barcode does not match valid stock item"
+msgid "Barcode does not match an existing stock item"
+msgstr "Barcode entspricht keinem Lagerartikel"
+
+#: plugin/base/barcodes/api.py:563
+#, fuzzy
+#| msgid "Selected stock item does not match BOM line"
+msgid "Stock item does not match line item"
+msgstr "Ausgewählter Lagerbestand stimmt nicht mit BOM-Linie überein"
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr "Unzureichender Bestand verfügbar"
+
+#: plugin/base/barcodes/api.py:599
+#, fuzzy
+#| msgid "Stock item assigned to sales order"
+msgid "Stock item allocated to sales order"
+msgstr "Lagerartikel wurde Auftrag zugewiesen"
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "No user information"
+msgid "Not enough information"
+msgstr "Keine Benutzerinformation"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7472,8 +7522,10 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
-msgstr ""
+#, fuzzy
+#| msgid "Purchase order no longer exists"
+msgid "Purchase Order to allocate items against"
+msgstr "Bestellung existiert nicht mehr"
#: plugin/base/barcodes/serializers.py:88
msgid "Purchase order is not pending"
@@ -7495,6 +7547,40 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+#, fuzzy
+#| msgid "Sales Order Allocations"
+msgid "Sales Order to allocate items against"
+msgstr "Verkaufsauftragszuweisungen"
+
+#: plugin/base/barcodes/serializers.py:147
+#, fuzzy
+#| msgid "Sales order not found"
+msgid "Sales order is not pending"
+msgstr "Auftrag nicht gefunden"
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+#, fuzzy
+#| msgid "Sales order shipment reference"
+msgid "Sales order shipment to allocate items against"
+msgstr "Sendungsnummer-Referenz"
+
+#: plugin/base/barcodes/serializers.py:167
+#, fuzzy
+#| msgid "Shipment has already been shipped"
+msgid "Shipment has already been delivered"
+msgstr "Sendung wurde bereits versandt"
+
+#: plugin/base/barcodes/serializers.py:173
+#, fuzzy
+#| msgid "Quantity to order"
+msgid "Quantity to allocate"
+msgstr "Zu bestellende Menge"
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr "Labeldruck fehlgeschlagen"
@@ -8049,12 +8135,12 @@ msgid "Test Results"
msgstr "Testergebnisse"
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr "Test"
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr "Ergebnis"
@@ -8386,104 +8472,104 @@ msgstr "Preis für eine Einheit bei Einkauf"
msgid "Converted to part"
msgstr "In Teil umgewandelt"
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr "Teil ist nicht verfolgbar"
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr "Anzahl muss eine Ganzzahl sein"
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr "Seriennummern muss eine Liste von Ganzzahlen sein"
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr "Anzahl stimmt nicht mit den Seriennummern überein"
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr "Seriennummern existieren bereits"
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr "Artikel wurde einem Kundenauftrag zugewiesen"
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr "Lagerartikel ist in anderem Element verbaut"
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr "Lagerartikel enthält andere Artikel"
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr "Artikel wurde einem Kunden zugewiesen"
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr "Lagerartikel wird aktuell produziert"
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr "Nachverfolgbare Lagerartikel können nicht zusammengeführt werden"
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr "Artikel duplizeren"
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr "Lagerartikel müssen auf dasselbe Teil verweisen"
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr "Lagerartikel müssen auf dasselbe Lieferantenteil verweisen"
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr "Status-Codes müssen zusammenpassen"
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Lagerartikel kann nicht bewegt werden, da kein Bestand vorhanden ist"
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr "Eintrags-Notizen"
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr "Wert muss für diesen Test angegeben werden"
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr "Anhang muss für diesen Test hochgeladen werden"
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr "Name des Tests"
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr "Testergebnis"
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr "Test Ausgabe Wert"
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr "Test Ergebnis Anhang"
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr "Test Notizen"
@@ -10356,73 +10442,73 @@ msgstr "Barcode Daten scannen"
msgid "Scan Barcode"
msgstr "Barcode scannen"
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr "keine URL in der Antwort"
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr "Dadurch wird der Link zu dem zugehörigen Barcode entfernt"
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr "Entfernen"
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr "Lagerartikel entfernen"
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr "Lagerartikel in Lagerort buchen"
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr "Barcode des Lagerartikels scannen um ihn an diesen Ort einzuchecken"
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr "Einbuchen"
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr "Kein Barcode vorhanden"
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr "Lagerartikel bereits gescannt"
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr "Lagerartikel besteht bereits in diesem Lagerort"
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr "Lagerartikel hinzugefügt"
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr "Barcode entspricht keinem Lagerartikel"
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr "Diesen Lagerort per Scan an einen anderen Lagerort verschieben"
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr "Barcode des Lagerorts scannen um ihn an diesen Ort einzuchecken"
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr "Barcode entspricht keinem Lagerort"
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr "In Lagerorten buchen"
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr "Barcode entspricht keinem Lagerort"
@@ -10971,11 +11057,6 @@ msgstr "Nachverfolgbares Teil"
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr "Unzureichender Bestand verfügbar"
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13406,9 +13487,11 @@ msgstr ""
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
-msgstr "Sie sind dabei, Ihr %(provider_name)s Konto zu verwenden, um sich bei\n"
+msgstr ""
+"Sie sind dabei, Ihr %(provider_name)s Konto zu verwenden, um sich bei\n"
"%(site_name)s anzumelden.
Als letzten Schritt füllen Sie bitte folgendes Formular aus:"
#: templates/socialaccount/snippets/provider_list.html:26
@@ -13582,4 +13665,3 @@ msgstr "Berechtigungen Einträge zu ändern"
#: users/models.py:410
msgid "Permission to delete items"
msgstr "Berechtigung Einträge zu löschen"
-
diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po
index 3b66b0238e02..bd9300787571 100644
--- a/InvenTree/locale/el/LC_MESSAGES/django.po
+++ b/InvenTree/locale/el/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:45\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
@@ -57,9 +57,9 @@ msgstr "Εισάγετε ημερομηνία"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr "Το αρχείο λείπει"
msgid "Missing external link"
msgstr "Λείπει ο εξωτερικός σύνδεσμος"
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr "Σχόλιο αρχείου"
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr "Μη έγκυρη επιλογή"
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr "Όνομα"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -444,12 +444,12 @@ msgstr "Σφάλμα διακομιστή"
msgid "An error has been logged by the server."
msgstr "Ένα σφάλμα έχει καταγραφεί από το διακομιστή."
-#: InvenTree/serializers.py:61 part/models.py:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr "Πρέπει να είναι αριθμός"
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,7 +474,9 @@ msgstr ""
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
msgstr ""
@@ -540,123 +542,127 @@ msgstr "Διεύθυνση URL του αρχείου απομακρυσμένη
msgid "Downloading images from remote URL is not enabled"
msgstr "Η λήψη εικόνων από απομακρυσμένο URL δεν είναι ενεργοποιημένη"
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr "Βουλγάρικα"
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr "Τσέχικα"
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr "Γερμανικά"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr "Ελληνικά"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr "Αγγλικά"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr "Ισπανικά"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr "Ισπανικά (Μεξικό)"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr "Φαρσί / Περσικά"
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr "Φινλανδικά"
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr "Γαλλικά"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr "Εβραϊκά"
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr "Ινδικά"
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr "Ούγγρικα"
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "Ιταλικά"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "Ιαπωνικά"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "Κορεάτικα"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "Dutch"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "Νορβηγικά"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "Πολωνικά"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "Πορτογαλικά"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr "Πορτογαλικά (Βραζιλίας)"
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "Ρωσικά"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "Σουηδικά"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "Ταϊλανδέζικα"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "Τούρκικα"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "Βιετναμέζικα"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr "Κινέζικα (απλοποιημένα)"
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr "Κινέζικα (Παραδοσιακά)"
@@ -916,14 +922,14 @@ msgstr "Σχετικά με το InvenTree"
msgid "Build must be cancelled before it can be deleted"
msgstr "Η έκδοση πρέπει να ακυρωθεί πριν διαγραφεί"
-#: build/api.py:281 part/models.py:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -991,8 +997,8 @@ msgid "Build Order Reference"
msgstr "Αναφορά Παραγγελίας Κατασκευής"
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1022,10 +1028,10 @@ msgstr "BuildOrder στην οποία έχει δοθεί αυτή η κατα
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1043,7 +1049,7 @@ msgstr "BuildOrder στην οποία έχει δοθεί αυτή η κατα
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1149,7 +1155,7 @@ msgstr "Ημερομηνία ολοκλήρωσης στόχου"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Ημερομηνία ολοκλήρωσης της κατασκευής. Η κατασκευή θα καθυστερήσει μετά από αυτή την ημερομηνία."
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr "Ημερομηνία ολοκλήρωσης"
@@ -1244,7 +1250,7 @@ msgstr "Η έξοδος κατασκευής δεν ταιριάζει με τη
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0"
@@ -1259,9 +1265,9 @@ msgstr ""
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1276,7 +1282,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1316,11 +1322,11 @@ msgstr "Το στοιχείο κατασκευής πρέπει να ορίζε
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Η καταχωρημένη ποσότητα ({q}) δεν πρέπει να υπερβαίνει τη διαθέσιμη ποσότητα αποθέματος ({a})"
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr "Στοιχείο αποθέματος είναι υπερ-κατανεμημένο"
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0"
@@ -1429,8 +1435,8 @@ msgstr ""
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1466,7 +1472,7 @@ msgstr ""
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1680,8 +1686,8 @@ msgstr ""
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr ""
@@ -2364,7 +2370,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3403,7 +3409,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3868,7 +3874,7 @@ msgstr ""
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3879,7 +3885,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3939,7 +3945,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4062,7 +4068,7 @@ msgid "Delete image"
msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4564,7 +4570,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4650,15 +4656,15 @@ msgstr ""
msgid "received by"
msgstr ""
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr ""
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr ""
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr ""
@@ -4674,11 +4680,11 @@ msgstr ""
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr ""
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr ""
@@ -4749,8 +4755,8 @@ msgid "deleted"
msgstr ""
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr ""
@@ -4827,7 +4833,7 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
@@ -4876,77 +4882,77 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr ""
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr ""
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5490,12 +5496,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
@@ -5572,12 +5578,12 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5618,7 +5624,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr ""
@@ -5680,7 +5686,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5761,7 +5767,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr ""
@@ -5785,7 +5791,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5896,155 +5902,155 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6056,318 +6062,318 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr ""
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr ""
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr ""
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr ""
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr ""
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr ""
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr ""
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr ""
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr ""
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr ""
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr ""
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3820
+#: part/models.py:3824
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr ""
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7399,43 +7405,77 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+msgid "Multiple matching line items found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:503
+msgid "No matching line item found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+msgid "Barcode does not match an existing stock item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:563
+msgid "Stock item does not match line item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+#, fuzzy
+#| msgid "Stock quantity to allocate to build"
+msgid "Stock item allocated to sales order"
+msgstr "Ποσότητα αποθέματος για διάθεση για κατασκευή"
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "Edit User Information"
+msgid "Not enough information"
+msgstr "Τροποποίηση πληροφοριών χρήστη"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7471,7 +7511,7 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
+msgid "Purchase Order to allocate items against"
msgstr ""
#: plugin/base/barcodes/serializers.py:88
@@ -7494,6 +7534,34 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+msgid "Sales Order to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:147
+msgid "Sales order is not pending"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+msgid "Sales order shipment to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:167
+#, fuzzy
+#| msgid "This build output has already been completed"
+msgid "Shipment has already been delivered"
+msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί"
+
+#: plugin/base/barcodes/serializers.py:173
+#, fuzzy
+#| msgid "Stock quantity to allocate to build"
+msgid "Quantity to allocate"
+msgstr "Ποσότητα αποθέματος για διάθεση για κατασκευή"
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8048,12 +8116,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr ""
@@ -8385,104 +8453,104 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr ""
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr ""
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10355,73 +10423,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr ""
@@ -10970,11 +11038,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13405,7 +13468,8 @@ msgstr ""
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
msgstr ""
@@ -13580,4 +13644,3 @@ msgstr ""
#: users/models.py:410
msgid "Permission to delete items"
msgstr ""
-
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index f56986b7ea10..7c2d5158ff79 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-12-10 22:58+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -58,9 +58,9 @@ msgstr ""
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -255,7 +255,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -298,8 +298,8 @@ msgstr ""
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -345,7 +345,7 @@ msgstr ""
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -370,7 +370,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -445,12 +445,12 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:61 part/models.py:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr ""
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -543,123 +543,127 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr ""
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr ""
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr ""
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr ""
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr ""
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr ""
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr ""
@@ -919,14 +923,14 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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,8 +998,8 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1025,10 +1029,10 @@ msgstr ""
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1046,7 +1050,7 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1152,7 +1156,7 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr ""
@@ -1247,7 +1251,7 @@ msgstr ""
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1262,9 +1266,9 @@ msgstr ""
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1279,7 +1283,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1319,11 +1323,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -1432,8 +1436,8 @@ msgstr ""
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1469,7 +1473,7 @@ msgstr ""
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1683,8 +1687,8 @@ msgstr ""
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr ""
@@ -2367,7 +2371,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3406,7 +3410,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3871,7 +3875,7 @@ msgstr ""
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3882,7 +3886,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3942,7 +3946,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4065,7 +4069,7 @@ msgid "Delete image"
msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4567,7 +4571,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4653,15 +4657,15 @@ msgstr ""
msgid "received by"
msgstr ""
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr ""
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr ""
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr ""
@@ -4677,11 +4681,11 @@ msgstr ""
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr ""
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr ""
@@ -4752,8 +4756,8 @@ msgid "deleted"
msgstr ""
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr ""
@@ -4830,7 +4834,7 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
@@ -4879,77 +4883,77 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr ""
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr ""
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5493,12 +5497,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
@@ -5575,12 +5579,12 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5621,7 +5625,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr ""
@@ -5683,7 +5687,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5764,7 +5768,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr ""
@@ -5788,7 +5792,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5899,155 +5903,155 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6059,318 +6063,318 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr ""
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr ""
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr ""
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr ""
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr ""
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr ""
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr ""
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr ""
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr ""
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr ""
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr ""
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3820
+#: part/models.py:3824
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr ""
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7402,43 +7406,73 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+msgid "Multiple matching line items found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:503
+msgid "No matching line item found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+msgid "Barcode does not match an existing stock item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:563
+msgid "Stock item does not match line item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+msgid "Stock item allocated to sales order"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:603
+msgid "Not enough information"
+msgstr ""
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7474,7 +7508,7 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
+msgid "Purchase Order to allocate items against"
msgstr ""
#: plugin/base/barcodes/serializers.py:88
@@ -7497,6 +7531,30 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+msgid "Sales Order to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:147
+msgid "Sales order is not pending"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+msgid "Sales order shipment to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:167
+msgid "Shipment has already been delivered"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:173
+msgid "Quantity to allocate"
+msgstr ""
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8051,12 +8109,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr ""
@@ -8388,104 +8446,104 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr ""
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr ""
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10358,73 +10416,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr ""
@@ -10973,11 +11031,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index d1e0892277cc..816786d87bca 100644
--- a/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:46\n"
"Last-Translator: \n"
"Language-Team: Spanish, Mexico\n"
@@ -57,9 +57,9 @@ msgstr "Ingrese la fecha"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr "Archivo no encontrado"
msgid "Missing external link"
msgstr "Falta enlace externo"
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr "Comentario del archivo"
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr "Selección no válida"
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr "Nombre"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -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:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr "Debe ser un número válido"
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,9 +474,13 @@ msgstr "Bienvenido/a a {current_site.name}"
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
-msgstr "Su cuenta ha sido creada.\n\n"
+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
@@ -541,123 +545,127 @@ msgstr "URL de imagen remota"
msgid "Downloading images from remote URL is not enabled"
msgstr "La descarga de imágenes desde la URL remota no está habilitada"
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr "Búlgaro"
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr "Checo"
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr "Danés"
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr "Alemán"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr "Griego"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr "Inglés"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr "Español"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr "Español (México)"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr "Farsi / Persa"
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr "Finlandés"
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr "Francés"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr "Hebreo"
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr "Hindi"
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr "Húngaro"
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "Italiano"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "Japonés"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "Coreano"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "Holandés"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "Noruego"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "Polaco"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "Portugués"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr "Portugués (Brasileño)"
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "Ruso"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr "Esloveno"
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "Sueco"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "Tailandés"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "Turco"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "Vietnamita"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr "Chino (Simplificado)"
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr "Chino (Tradicional)"
@@ -917,14 +925,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:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -992,8 +1000,8 @@ msgid "Build Order Reference"
msgstr "Número de orden de construcción o armado"
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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,10 +1031,10 @@ msgstr "Orden de Construcción o Armado a la que se asigna"
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1044,7 +1052,7 @@ msgstr "Orden de Construcción o Armado a la que se asigna"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1150,7 +1158,7 @@ msgstr "Fecha límite de finalización"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Fecha límite para la finalización de la construcción. La construcción estará vencida después de esta fecha."
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr "Fecha de finalización"
@@ -1245,7 +1253,7 @@ msgstr "La salida de la construcción no coincide con el orden de construcción"
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr "La cantidad debe ser mayor que cero"
@@ -1260,9 +1268,9 @@ msgstr "Ensamblar equipo"
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1277,7 +1285,7 @@ msgstr "Ensamblar equipo"
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1317,11 +1325,11 @@ msgstr "Item de construcción o armado debe especificar un resultado o salida, y
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Cantidad asignada ({q}) no debe exceder la cantidad disponible de stock ({a})"
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr "Artículo de stock sobreasignado"
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr "Cantidad asignada debe ser mayor que cero"
@@ -1430,8 +1438,8 @@ msgstr "Debe proporcionarse una lista de salidas de construcción"
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1467,7 +1475,7 @@ msgstr "Ubicación para las salidas de construcción completadas"
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1681,8 +1689,8 @@ msgstr "Mostrar código QR"
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr "Desvincular Código de Barras"
@@ -2365,7 +2373,7 @@ msgstr "Copiar plantillas de parámetros de categoría"
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:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3404,7 +3412,7 @@ msgid "Price break quantity"
msgstr "Cantidad de salto de precio"
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3869,7 +3877,7 @@ msgstr "Nombre del parámetro"
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3880,7 +3888,7 @@ msgid "Parameter value"
msgstr "Valor del parámetro"
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3940,7 +3948,7 @@ msgid "Supplier part description"
msgstr "Descripción de la parte del proveedor"
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4063,7 +4071,7 @@ msgid "Delete image"
msgstr "Borrar imagen"
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4565,7 +4573,7 @@ msgstr "No se encontró ninguna orden de compra coincidente"
msgid "Purchase Order"
msgstr "Orden de compra"
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4651,15 +4659,15 @@ msgstr "Código de referencia de pedido del proveedor"
msgid "received by"
msgstr "recibido por"
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr "Fecha de emisión"
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr "Fecha de expedición del pedido"
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr "La fecha de pedido fue completada"
@@ -4675,11 +4683,11 @@ msgstr "La cantidad debe ser un número positivo"
msgid "Company to which the items are being sold"
msgstr "Empresa a la que se venden los artículos"
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr "Referencia del cliente "
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr "Código de referencia de pedido del cliente"
@@ -4750,8 +4758,8 @@ msgid "deleted"
msgstr "eliminado"
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr "Orden"
@@ -4828,7 +4836,7 @@ msgstr "Revisado por"
msgid "User who checked this shipment"
msgstr "Usuario que revisó este envío"
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr "Envío"
@@ -4877,77 +4885,77 @@ msgstr "No se puede asignar stock a una línea sin una parte"
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "La cantidad de asignación no puede exceder la cantidad de stock"
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr "La cantidad debe ser 1 para el stock serializado"
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr "La orden de venta no coincide con el envío"
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr "El envío no coincide con el pedido de venta"
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr "Línea"
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr "Referencia del envío del pedido de venta"
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr "Ítem"
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr "Seleccionar artículo de stock para asignar"
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr "Especificar la cantidad de asignación de stock"
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr "Referencia de la orden de devolución"
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr "Empresa de la cual se están devolviendo los artículos"
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr "Estado de la orden de devolución"
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr "Sólo los artículos serializados pueden ser asignados a una orden de devolución"
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr "Seleccionar el artículo a devolver del cliente"
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr "Fecha de recepción"
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr "La fecha en la que se recibió este artículo de devolución"
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr "Resultado"
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr "Salida para esta partida"
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr "Costo asociado con la devolución o reparación para esta partida"
@@ -5491,12 +5499,12 @@ 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:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr "ID de Parte"
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr "Nombre de parte"
@@ -5573,12 +5581,12 @@ msgstr "Usado en"
msgid "Building"
msgstr "En construcción"
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr "Costo mínimo"
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr "Costo máximo"
@@ -5619,7 +5627,7 @@ msgstr "ID de artículo de BOM"
msgid "Parent IPN"
msgstr "IPN del padre"
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr "IPN de la parte"
@@ -5681,7 +5689,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:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Categoría de parte"
@@ -5762,7 +5770,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:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr "Nombre de la parte"
@@ -5786,7 +5794,7 @@ 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:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5897,155 +5905,155 @@ msgstr "Último inventario"
msgid "Sell multiple"
msgstr "Vender múltiples"
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr "Moneda utilizada para almacenar en caché los cálculos de precios"
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr "Costo mínimo de BOM"
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr "Costo mínimo de partes de componentes"
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr "Costo máximo de BOM"
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr "Costo máximo de partes de componentes"
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr "Costo mínimo de compra"
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr "Costo histórico mínimo de compra"
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr "Costo máximo de compra"
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr "Costo histórico máximo de compra"
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr "Precio interno mínimo"
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr "Precio interno máximo"
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr "Costo máximo basado en precios reducidos internos"
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr "Precio mínimo de proveedor"
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr "Precio mínimo de la parte de proveedores externos"
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr "Precio máximo de proveedor"
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr "Precio máximo de la parte de proveedores externos"
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr "Costo mínimo de variante"
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr "Costo mínimo calculado de las partes variantes"
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr "Costo máximo de variante"
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr "Costo máximo calculado de las partes variantes"
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr "Precio de venta mínimo"
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr "Precio de venta mínimo basado en precios reducidos"
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr "Precio de venta máximo"
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr "Precio de venta máximo basado en precios reducidos"
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr "Costo de venta mínimo"
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr "Precio de venta mínimo histórico"
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr "Número de artículos"
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6057,318 +6065,318 @@ msgstr ""
msgid "Date"
msgstr "Fecha"
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr "Notas adicionales"
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr "Informe"
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr "Número de partes"
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
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:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr "Ya existe una prueba con este nombre para esta parte"
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr "Nombre de prueba"
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr "Introduzca un nombre para la prueba"
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr "Descripción de prueba"
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr "Introduce la descripción para esta prueba"
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr "Requerido"
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr "¿Es necesario pasar esta prueba?"
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr "Requiere valor"
-#: part/models.py:3285
+#: part/models.py:3289
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:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr "Adjunto obligatorio"
-#: part/models.py:3291
+#: part/models.py:3295
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:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr "El nombre de parámetro en la plantilla tiene que ser único"
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr "Nombre de Parámetro"
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr "Casilla de verificación"
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr "¿Es este parámetro una casilla de verificación?"
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr "Opciones"
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr "Opciones válidas para este parámetro (separados por comas)"
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr "Opción inválida para el valor del parámetro"
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr "Parte principal"
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr "Plantilla de parámetro"
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr "Datos"
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr "Valor del parámetro"
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr "Valor predeterminado"
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr "Valor de parámetro por defecto"
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr "ID de parte o nombre de parte"
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr "Valor de ID de parte única"
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr "Valor IPN de parte"
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr "Nivel"
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr "Nivel de BOM"
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr "Item de Lista de Materiales"
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr "Seleccionar parte principal"
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr "Sub parte"
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr "Seleccionar parte a utilizar en BOM"
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr "Cantidad del artículo en BOM"
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr "Este artículo BOM es opcional"
-#: part/models.py:3787
+#: part/models.py:3791
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:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Exceso"
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Cantidad estimada de desperdicio de construcción (absoluta o porcentaje)"
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr "Referencia de artículo de BOM"
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr "Notas del artículo de BOM"
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr "Suma de verificación"
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr "Suma de verificación de línea de BOM"
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr "Validado"
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr "Este artículo de BOM ha sido validado"
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
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:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr "Permitir variantes"
-#: part/models.py:3820
+#: part/models.py:3824
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:3906 stock/models.py:613
+#: part/models.py:3910 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:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr "Debe especificar la subparte"
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr "Ítem de BOM sustituto"
-#: part/models.py:4063
+#: part/models.py:4067
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:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr "Artículo BOM superior"
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr "Sustituir parte"
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr "Parte 1"
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr "Parte 2"
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr "Seleccionar parte relacionada"
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7400,43 +7408,85 @@ msgstr "No se especificó ninguna acción"
msgid "No matching action found"
msgstr "No se encontró ninguna acción coincidente"
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr "No se encontró ninguna coincidencia para los datos del código de barras"
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr "Coincidencia encontrada para datos de códigos de barras"
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr "El código de barras coincide con artículo existente"
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+#, fuzzy
+#| msgid "Multiple matching parts found"
+msgid "Multiple matching line items found"
+msgstr "Varios resultados encontrados"
+
+#: plugin/base/barcodes/api.py:503
+#, fuzzy
+#| msgid "No matching line items"
+msgid "No matching line item found"
+msgstr "No hay partidas coincidentes"
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+#, fuzzy
+#| msgid "Barcode matches existing item"
+msgid "Barcode does not match an existing stock item"
+msgstr "El código de barras coincide con artículo existente"
+
+#: plugin/base/barcodes/api.py:563
+#, fuzzy
+#| msgid "Selected stock item does not match BOM line"
+msgid "Stock item does not match line item"
+msgstr "El artículo de almacén selelccionado no coincide con la línea BOM"
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+#, fuzzy
+#| msgid "Stock item assigned to sales order"
+msgid "Stock item allocated to sales order"
+msgstr "Artículo de stock asignado al pedido de venta"
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "No user information"
+msgid "Not enough information"
+msgstr "No hay información de usuario"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7472,8 +7522,10 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
-msgstr ""
+#, fuzzy
+#| msgid "Purchase order no longer exists"
+msgid "Purchase Order to allocate items against"
+msgstr "La orden de compra ya no existe"
#: plugin/base/barcodes/serializers.py:88
msgid "Purchase order is not pending"
@@ -7495,6 +7547,40 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+#, fuzzy
+#| msgid "Sales Order Allocations"
+msgid "Sales Order to allocate items against"
+msgstr "Asignaciones de órdenes de venta"
+
+#: plugin/base/barcodes/serializers.py:147
+#, fuzzy
+#| msgid "Sales order not found"
+msgid "Sales order is not pending"
+msgstr "Orden de venta no encontrada"
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+#, fuzzy
+#| msgid "Sales order shipment reference"
+msgid "Sales order shipment to allocate items against"
+msgstr "Referencia del envío del pedido de venta"
+
+#: plugin/base/barcodes/serializers.py:167
+#, fuzzy
+#| msgid "Shipment has already been shipped"
+msgid "Shipment has already been delivered"
+msgstr "El envío ya ha sido enviado"
+
+#: plugin/base/barcodes/serializers.py:173
+#, fuzzy
+#| msgid "Quantity to order"
+msgid "Quantity to allocate"
+msgstr "Cantidad a ordenar"
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr "Impresión de etiquetas fallida"
@@ -8049,12 +8135,12 @@ msgid "Test Results"
msgstr "Resultados de la Prueba"
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr "Prueba"
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr "Resultado"
@@ -8386,104 +8472,104 @@ msgstr "Precio de compra único en el momento de la compra"
msgid "Converted to part"
msgstr "Convertido a parte"
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr "La parte no está establecida como rastreable"
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr "Cantidad debe ser un entero"
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr "Los números de serie deben ser una lista de enteros"
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr "La cantidad no coincide con los números de serie"
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr "Números de serie ya existen"
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr "Artículo de stock ha sido asignado a un pedido de venta"
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr "Artículo de stock está instalado en otro artículo"
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr "Artículo de stock contiene otros artículos"
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr "Artículo de stock ha sido asignado a un cliente"
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr "El artículo de stock está en producción"
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr "Stock serializado no puede ser combinado"
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr "Artículos de Stock Duplicados"
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr "Los artículos de stock deben referirse a la misma parte"
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr "Los artículos de stock deben referirse a la misma parte del proveedor"
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr "Los códigos de estado del stock deben coincidir"
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Stock no se puede mover porque no está en stock"
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr "Notas de entrada"
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr "Debe proporcionarse un valor para esta prueba"
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr "El archivo adjunto debe ser subido para esta prueba"
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr "Nombre del test"
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr "Resultado de la prueba"
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr "Valor de salida de prueba"
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr "Adjunto de resultados de prueba"
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr "Notas de prueba"
@@ -10356,73 +10442,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr "Escanear código de barras"
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr "No hay URL en respuesta"
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr "Desvincular"
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr "Eliminar artículo de stock"
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr "Registrar"
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr "Artículo de stock ya escaneado"
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr "Artículo de stock ya está en esta ubicación"
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr "Artículo de stock añadido"
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr "Comprobar en la ubicación"
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr "El código de barras no coincide con una ubicación válida"
@@ -10971,11 +11057,6 @@ msgstr "Parte Rastreable"
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13406,9 +13487,11 @@ msgstr ""
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
-msgstr "Estás a punto de usar tu cuenta de %(provider_name)s para iniciar sesión en\n"
+msgstr ""
+"Estás a punto de usar tu cuenta de %(provider_name)s para iniciar sesión en\n"
"%(site_name)s.
Como paso final, por favor completa el siguiente formulario:"
#: templates/socialaccount/snippets/provider_list.html:26
@@ -13582,4 +13665,3 @@ msgstr "Permisos para editar artículos"
#: users/models.py:410
msgid "Permission to delete items"
msgstr "Permiso para eliminar artículos"
-
diff --git a/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/InvenTree/locale/es_MX/LC_MESSAGES/django.po
index f56986b7ea10..7c2d5158ff79 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-12-10 22:58+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -58,9 +58,9 @@ msgstr ""
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -255,7 +255,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -298,8 +298,8 @@ msgstr ""
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -345,7 +345,7 @@ msgstr ""
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -370,7 +370,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -445,12 +445,12 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:61 part/models.py:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr ""
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -543,123 +543,127 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr ""
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr ""
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr ""
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr ""
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr ""
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr ""
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr ""
@@ -919,14 +923,14 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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,8 +998,8 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1025,10 +1029,10 @@ msgstr ""
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1046,7 +1050,7 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1152,7 +1156,7 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr ""
@@ -1247,7 +1251,7 @@ msgstr ""
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1262,9 +1266,9 @@ msgstr ""
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1279,7 +1283,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1319,11 +1323,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -1432,8 +1436,8 @@ msgstr ""
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1469,7 +1473,7 @@ msgstr ""
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1683,8 +1687,8 @@ msgstr ""
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr ""
@@ -2367,7 +2371,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3406,7 +3410,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3871,7 +3875,7 @@ msgstr ""
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3882,7 +3886,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3942,7 +3946,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4065,7 +4069,7 @@ msgid "Delete image"
msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4567,7 +4571,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4653,15 +4657,15 @@ msgstr ""
msgid "received by"
msgstr ""
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr ""
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr ""
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr ""
@@ -4677,11 +4681,11 @@ msgstr ""
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr ""
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr ""
@@ -4752,8 +4756,8 @@ msgid "deleted"
msgstr ""
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr ""
@@ -4830,7 +4834,7 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
@@ -4879,77 +4883,77 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr ""
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr ""
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5493,12 +5497,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
@@ -5575,12 +5579,12 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5621,7 +5625,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr ""
@@ -5683,7 +5687,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5764,7 +5768,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr ""
@@ -5788,7 +5792,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5899,155 +5903,155 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6059,318 +6063,318 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr ""
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr ""
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr ""
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr ""
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr ""
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr ""
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr ""
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr ""
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr ""
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr ""
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr ""
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3820
+#: part/models.py:3824
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr ""
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7402,43 +7406,73 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+msgid "Multiple matching line items found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:503
+msgid "No matching line item found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+msgid "Barcode does not match an existing stock item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:563
+msgid "Stock item does not match line item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+msgid "Stock item allocated to sales order"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:603
+msgid "Not enough information"
+msgstr ""
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7474,7 +7508,7 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
+msgid "Purchase Order to allocate items against"
msgstr ""
#: plugin/base/barcodes/serializers.py:88
@@ -7497,6 +7531,30 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+msgid "Sales Order to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:147
+msgid "Sales order is not pending"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+msgid "Sales order shipment to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:167
+msgid "Shipment has already been delivered"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:173
+msgid "Quantity to allocate"
+msgstr ""
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8051,12 +8109,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr ""
@@ -8388,104 +8446,104 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr ""
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr ""
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10358,73 +10416,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr ""
@@ -10973,11 +11031,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
diff --git a/InvenTree/locale/fa/LC_MESSAGES/django.po b/InvenTree/locale/fa/LC_MESSAGES/django.po
index 6151916cb336..0c7e4cb94b33 100644
--- a/InvenTree/locale/fa/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fa/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:46\n"
"Last-Translator: \n"
"Language-Team: Persian\n"
@@ -57,9 +57,9 @@ msgstr "تاریخ را وارد کنید"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr ""
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr ""
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -444,12 +444,12 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:61 part/models.py:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr ""
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,7 +474,9 @@ msgstr ""
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
msgstr ""
@@ -540,123 +542,127 @@ msgstr "آدرس فایل تصویری از راه دور"
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr ""
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr ""
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr ""
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr ""
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr ""
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr ""
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr ""
@@ -916,14 +922,14 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -991,8 +997,8 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1022,10 +1028,10 @@ msgstr ""
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1043,7 +1049,7 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1149,7 +1155,7 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr ""
@@ -1244,7 +1250,7 @@ msgstr ""
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1259,9 +1265,9 @@ msgstr ""
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1276,7 +1282,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1316,11 +1322,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -1429,8 +1435,8 @@ msgstr ""
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1466,7 +1472,7 @@ msgstr ""
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1680,8 +1686,8 @@ msgstr ""
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr ""
@@ -2364,7 +2370,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3403,7 +3409,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3868,7 +3874,7 @@ msgstr ""
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3879,7 +3885,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3939,7 +3945,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4062,7 +4068,7 @@ msgid "Delete image"
msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4564,7 +4570,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4650,15 +4656,15 @@ msgstr ""
msgid "received by"
msgstr ""
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr ""
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr ""
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr ""
@@ -4674,11 +4680,11 @@ msgstr ""
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr ""
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr ""
@@ -4749,8 +4755,8 @@ msgid "deleted"
msgstr ""
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr ""
@@ -4827,7 +4833,7 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
@@ -4876,77 +4882,77 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr ""
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr ""
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5490,12 +5496,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
@@ -5572,12 +5578,12 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5618,7 +5624,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr ""
@@ -5680,7 +5686,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5761,7 +5767,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr ""
@@ -5785,7 +5791,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5896,155 +5902,155 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6056,318 +6062,318 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr ""
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr ""
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr ""
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr ""
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr ""
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr ""
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr ""
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr ""
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr ""
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr ""
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr ""
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3820
+#: part/models.py:3824
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr ""
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7399,43 +7405,73 @@ msgstr "هیچ عملیات کاربر-محوری، مشخص نشده است"
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+msgid "Multiple matching line items found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:503
+msgid "No matching line item found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+msgid "Barcode does not match an existing stock item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:563
+msgid "Stock item does not match line item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+msgid "Stock item allocated to sales order"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:603
+msgid "Not enough information"
+msgstr ""
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7471,7 +7507,7 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
+msgid "Purchase Order to allocate items against"
msgstr ""
#: plugin/base/barcodes/serializers.py:88
@@ -7494,6 +7530,30 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+msgid "Sales Order to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:147
+msgid "Sales order is not pending"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+msgid "Sales order shipment to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:167
+msgid "Shipment has already been delivered"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:173
+msgid "Quantity to allocate"
+msgstr ""
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8048,12 +8108,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr ""
@@ -8385,104 +8445,104 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr ""
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr ""
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10355,73 +10415,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr ""
@@ -10970,11 +11030,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13405,7 +13460,8 @@ msgstr ""
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
msgstr ""
@@ -13580,4 +13636,3 @@ msgstr ""
#: users/models.py:410
msgid "Permission to delete items"
msgstr ""
-
diff --git a/InvenTree/locale/fi/LC_MESSAGES/django.po b/InvenTree/locale/fi/LC_MESSAGES/django.po
index f4f0658e661c..d0693556a3d9 100644
--- a/InvenTree/locale/fi/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fi/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:45\n"
"Last-Translator: \n"
"Language-Team: Finnish\n"
@@ -57,9 +57,9 @@ msgstr "Anna päivämäärä"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr "Puuttuva tiedosto"
msgid "Missing external link"
msgstr "Puuttuva ulkoinen linkki"
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr "Tiedoston kommentti"
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr "Virheellinen valinta"
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr "Nimi"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -444,12 +444,12 @@ msgstr "Palvelinvirhe"
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:61 part/models.py:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr "Täytyy olla kelvollinen luku"
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,7 +474,9 @@ msgstr ""
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
msgstr ""
@@ -540,123 +542,127 @@ msgstr "Kuvatiedoston URL"
msgid "Downloading images from remote URL is not enabled"
msgstr "Kuvien lataaminen ei ole käytössä"
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr "tšekki"
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr "tanska"
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr "saksa"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr "kreikka"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr "englanti"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr "espanja"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr "espanja (Meksiko)"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr "farsi / persia"
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr "suomi"
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr "ranska"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr "heprea"
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr ""
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr "unkari"
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "italia"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "japani"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "korea"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "hollanti"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "norja"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "puola"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "portugali"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr "portugali (Brasilia)"
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "venäjä"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr "slovenia"
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "ruotsi"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "thai"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "turkki"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "vietnam"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr ""
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr ""
@@ -916,14 +922,14 @@ msgstr "Tietoja InvenTree:stä"
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -991,8 +997,8 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1022,10 +1028,10 @@ msgstr ""
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1043,7 +1049,7 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1149,7 +1155,7 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr ""
@@ -1244,7 +1250,7 @@ msgstr ""
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1259,9 +1265,9 @@ msgstr ""
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1276,7 +1282,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1316,11 +1322,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -1429,8 +1435,8 @@ msgstr ""
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1466,7 +1472,7 @@ msgstr ""
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1680,8 +1686,8 @@ msgstr ""
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr "Poista viivakoodin linkitys"
@@ -2364,7 +2370,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3403,7 +3409,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3868,7 +3874,7 @@ msgstr ""
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3879,7 +3885,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3939,7 +3945,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4062,7 +4068,7 @@ msgid "Delete image"
msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4564,7 +4570,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4650,15 +4656,15 @@ msgstr ""
msgid "received by"
msgstr ""
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr ""
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr ""
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr ""
@@ -4674,11 +4680,11 @@ msgstr ""
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr "Asiakkaan viite "
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr ""
@@ -4749,8 +4755,8 @@ msgid "deleted"
msgstr ""
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr ""
@@ -4827,7 +4833,7 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
@@ -4876,77 +4882,77 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr ""
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr ""
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5490,12 +5496,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
@@ -5572,12 +5578,12 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5618,7 +5624,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr ""
@@ -5680,7 +5686,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5761,7 +5767,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr ""
@@ -5785,7 +5791,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5896,155 +5902,155 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6056,318 +6062,318 @@ msgstr ""
msgid "Date"
msgstr "Päivämäärä"
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr "Muut merkinnät"
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr "Raportti"
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr ""
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr ""
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr ""
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr ""
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr ""
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr ""
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr ""
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr ""
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr ""
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3820
+#: part/models.py:3824
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr ""
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7399,43 +7405,79 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+msgid "Multiple matching line items found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:503
+#, fuzzy
+#| msgid "No attachments found"
+msgid "No matching line item found"
+msgstr "Liitteitä ei löytynyt"
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+msgid "Barcode does not match an existing stock item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:563
+msgid "Stock item does not match line item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+#, fuzzy
+#| msgid "Stock item created"
+msgid "Stock item allocated to sales order"
+msgstr "Varastotuote luotu"
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "copy version information"
+msgid "Not enough information"
+msgstr "kopioi versiotiedot"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7471,7 +7513,7 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
+msgid "Purchase Order to allocate items against"
msgstr ""
#: plugin/base/barcodes/serializers.py:88
@@ -7494,6 +7536,30 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+msgid "Sales Order to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:147
+msgid "Sales order is not pending"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+msgid "Sales order shipment to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:167
+msgid "Shipment has already been delivered"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:173
+msgid "Quantity to allocate"
+msgstr ""
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8048,12 +8114,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr ""
@@ -8385,104 +8451,104 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr ""
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr ""
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10355,73 +10421,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr "Skannaa viivakoodi"
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr ""
@@ -10970,11 +11036,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13405,7 +13466,8 @@ msgstr ""
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
msgstr ""
@@ -13580,4 +13642,3 @@ msgstr "Oikeus muokata kohteita"
#: users/models.py:410
msgid "Permission to delete items"
msgstr "Oikeus poistaa kohteita"
-
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index fbb55c1946ff..d40a4d58bb74 100644
--- a/InvenTree/locale/fr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fr/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:45\n"
"Last-Translator: \n"
"Language-Team: French\n"
@@ -57,9 +57,9 @@ msgstr "Entrer la date"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr "Fichier manquant"
msgid "Missing external link"
msgstr "Lien externe manquant"
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr "Commentaire du fichier"
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr "Choix invalide"
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr "Nom"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -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:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr "Doit être un nombre valide"
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,9 +474,13 @@ msgstr "Bienvenue sur {current_site.name}"
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
-msgstr "Votre compte a été créé.\n\n"
+msgstr ""
+"Votre compte a été créé.\n"
+"\n"
"Veuillez utiliser la fonction de réinitialisation du mot de passe pour avoir accès (à https://{domain})."
#: InvenTree/serializers.py:519
@@ -541,123 +545,127 @@ msgstr "URL du fichier image distant"
msgid "Downloading images from remote URL is not enabled"
msgstr "Le téléchargement des images depuis une URL distante n'est pas activé"
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr "Bulgare"
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr "Tchèque"
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr "Danois"
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr "Allemand"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr "Grec"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr "Anglais"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr "Espagnol"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr "Espagnol (Mexique)"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr "Farsi / Perse"
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr "Finnois"
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr "Français"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr "Hébreu"
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr "Hindi"
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr "Hongrois"
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "Italien"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "Japonais"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "Coréen"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "Néerlandais"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "Norvégien"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "Polonais"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "Portugais"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr "Portugais (Brésilien)"
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "Russe"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr "Slovénien"
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "Suédois"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "Thaïlandais"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "Turc"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "Vietnamien"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr "Chinois (Simplifié)"
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr "Chinois (Traditionnel)"
@@ -917,14 +925,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:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -992,8 +1000,8 @@ msgid "Build Order Reference"
msgstr "Référence de l' Ordre de Fabrication"
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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,10 +1031,10 @@ msgstr "BuildOrder associé a cette fabrication"
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1044,7 +1052,7 @@ msgstr "BuildOrder associé a cette fabrication"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1150,7 +1158,7 @@ msgstr "Date d'achèvement cible"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Date cible pour l'achèvement de la construction. La construction sera en retard après cette date."
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr "Date d'achèvement"
@@ -1245,7 +1253,7 @@ msgstr "L'ordre de production de correspond pas à l'ordre de commande"
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr "La quantité doit être supérieure à zéro"
@@ -1260,9 +1268,9 @@ msgstr "Création de l'objet"
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1277,7 +1285,7 @@ msgstr "Création de l'objet"
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1317,11 +1325,11 @@ msgstr "L'élément de construction doit spécifier une sortie de construction,
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "La quantité allouée ({q}) ne doit pas excéder la quantité disponible ({a})"
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr "L'article de stock est suralloué"
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr "La quantité allouée doit être supérieure à zéro"
@@ -1430,8 +1438,8 @@ msgstr "Une liste d'ordre de production doit être fourni"
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1467,7 +1475,7 @@ msgstr "Emplacement des ordres de production achevés"
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1681,8 +1689,8 @@ msgstr "Afficher le QR Code"
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr "Délier le code-barre"
@@ -2365,7 +2373,7 @@ msgstr "Copier les templates de paramètres de catégorie"
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:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3404,7 +3412,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3869,7 +3877,7 @@ msgstr "Nom du paramètre"
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3880,7 +3888,7 @@ msgid "Parameter value"
msgstr "Valeur du paramètre"
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3940,7 +3948,7 @@ msgid "Supplier part description"
msgstr "Description de la pièce du fournisseur"
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4063,7 +4071,7 @@ msgid "Delete image"
msgstr "Supprimer image"
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4565,7 +4573,7 @@ msgstr "Aucun bon de commande correspondant n'a été trouvé"
msgid "Purchase Order"
msgstr "Commande d’achat"
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4651,15 +4659,15 @@ msgstr "Code de référence de la commande fournisseur"
msgid "received by"
msgstr "reçu par"
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr "Date d'émission"
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr "Date d'émission de la commande"
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr "Date à laquelle la commande a été complété"
@@ -4675,11 +4683,11 @@ msgstr "La quantité doit être un nombre positif"
msgid "Company to which the items are being sold"
msgstr "Société à laquelle les articles sont vendus"
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr "Référence client "
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr ""
@@ -4750,8 +4758,8 @@ msgid "deleted"
msgstr "supprimé"
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr "Commande"
@@ -4828,7 +4836,7 @@ msgstr "Vérifié par"
msgid "User who checked this shipment"
msgstr "Utilisateur qui a vérifié cet envoi"
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr "Envoi"
@@ -4877,77 +4885,77 @@ msgstr "Impossible d'allouer le stock à une ligne sans pièce"
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "La quantité d'allocation ne peut pas excéder la quantité en stock"
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr "Ligne"
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr "Article"
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr "Statut du retour de commande"
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5491,12 +5499,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr "ID de composant"
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr "Nom de l'article"
@@ -5573,12 +5581,12 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5619,7 +5627,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr ""
@@ -5681,7 +5689,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Catégorie de composant"
@@ -5762,7 +5770,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr "Nom de l'article"
@@ -5786,7 +5794,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5897,155 +5905,155 @@ msgstr ""
msgid "Sell multiple"
msgstr "Ventes multiples"
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6057,318 +6065,318 @@ msgstr ""
msgid "Date"
msgstr "Date"
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr "Notes additionnelles"
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr ""
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr ""
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr "Nom de test"
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr ""
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr "Requis"
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr "Valeur requise"
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr ""
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr "Données"
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr "Valeur par Défaut"
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr ""
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr "Article du BOM"
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr ""
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr ""
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Surplus"
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr "Validée"
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3820
+#: part/models.py:3824
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr ""
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7400,43 +7408,85 @@ msgstr "Aucune action spécifiée"
msgid "No matching action found"
msgstr "Aucune action correspondante trouvée"
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr "Aucune correspondance trouvée pour les données du code-barres"
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr "Correspondance trouvée pour les données du code-barres"
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+#, fuzzy
+#| msgid "No matching action found"
+msgid "Multiple matching line items found"
+msgstr "Aucune action correspondante trouvée"
+
+#: plugin/base/barcodes/api.py:503
+#, fuzzy
+#| msgid "No matching action found"
+msgid "No matching line item found"
+msgstr "Aucune action correspondante trouvée"
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+#, fuzzy
+#| msgid "Barcode does not match a valid location"
+msgid "Barcode does not match an existing stock item"
+msgstr "Le code-barres ne correspond pas à un emplacement valide"
+
+#: plugin/base/barcodes/api.py:563
+#, fuzzy
+#| msgid "Selected stock item does not match BOM line"
+msgid "Stock item does not match line item"
+msgstr "L'article de stock sélectionné ne correspond pas à la ligne BOM"
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+#, fuzzy
+#| msgid "Stock item assigned to sales order"
+msgid "Stock item allocated to sales order"
+msgstr "L'article en stock a été assigné à une commande de vente"
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "No user information"
+msgid "Not enough information"
+msgstr "Pas d'informations sur l'utilisateur"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7472,8 +7522,10 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
-msgstr ""
+#, fuzzy
+#| msgid "Purchase order no longer exists"
+msgid "Purchase Order to allocate items against"
+msgstr "Le bon de commande n'existe plus"
#: plugin/base/barcodes/serializers.py:88
msgid "Purchase order is not pending"
@@ -7495,6 +7547,40 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+#, fuzzy
+#| msgid "Sales Order Default Shipment"
+msgid "Sales Order to allocate items against"
+msgstr "Expédition par défaut du bon de commande"
+
+#: plugin/base/barcodes/serializers.py:147
+#, fuzzy
+#| msgid "Order is not open"
+msgid "Sales order is not pending"
+msgstr "La commande n'est pas ouverte"
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+#, fuzzy
+#| msgid "Shipment has no allocated stock items"
+msgid "Sales order shipment to allocate items against"
+msgstr "L'expédition n'a pas d'articles en stock alloués"
+
+#: plugin/base/barcodes/serializers.py:167
+#, fuzzy
+#| msgid "Shipment has already been sent"
+msgid "Shipment has already been delivered"
+msgstr "Le colis a déjà été envoyé"
+
+#: plugin/base/barcodes/serializers.py:173
+#, fuzzy
+#| msgid "Stock quantity to allocate to build"
+msgid "Quantity to allocate"
+msgstr "Quantité de stock à allouer à la construction"
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8049,12 +8135,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr "Résultat"
@@ -8386,104 +8472,104 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr "Les numéros de série doivent être une liste de nombres entiers"
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr "La quantité ne correspond pas au nombre de numéros de série"
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr "Les numéros de série existent déjà"
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr ""
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr ""
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10356,73 +10442,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr "Scanner le code-barres"
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr "Aucune URL dans la réponse"
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr "Délier"
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr "Supprimer l'article de stock"
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr "Article de stock déjà scanné"
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr "Article de stock déjà à cet emplacement"
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr "Article de stock ajouté"
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr "Vérifier dans l'emplacement"
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr "Le code-barres ne correspond pas à un emplacement valide"
@@ -10971,11 +11057,6 @@ msgstr "Pièce traçable"
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13406,7 +13487,8 @@ msgstr ""
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
msgstr ""
@@ -13581,4 +13663,3 @@ msgstr "Droit de modifier des élément"
#: users/models.py:410
msgid "Permission to delete items"
msgstr "Droit de supprimer des éléments"
-
diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po
index 336581137cb2..8ae1988d2455 100644
--- a/InvenTree/locale/he/LC_MESSAGES/django.po
+++ b/InvenTree/locale/he/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:45\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
@@ -57,9 +57,9 @@ msgstr "הזן תאריך סיום"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr "קובץ חסר"
msgid "Missing external link"
msgstr "חסר קישור חיצוני"
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr "הערת קובץ"
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr "בחירה שגויה"
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr "שם"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -444,12 +444,12 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:61 part/models.py:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr "המספר חייב להיות תקין"
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,7 +474,9 @@ msgstr ""
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
msgstr ""
@@ -540,123 +542,127 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr "גרמנית"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr "יוונית"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr "אנגלית"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr "ספרדית"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr "ספרדית (מקסיקנית)"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr ""
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr "צרפתית"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr "עברית"
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr ""
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "איטלקית"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "יפנית"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "קוריאנית"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "הולנדית"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "נורווגית"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "פולנית"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "רוסית"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "שוודית"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "תאילנדית"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "טורקית"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "ווייטנאמית"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr ""
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr ""
@@ -916,14 +922,14 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -991,8 +997,8 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1022,10 +1028,10 @@ msgstr ""
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1043,7 +1049,7 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1149,7 +1155,7 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr ""
@@ -1244,7 +1250,7 @@ msgstr ""
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1259,9 +1265,9 @@ msgstr ""
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1276,7 +1282,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1316,11 +1322,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -1429,8 +1435,8 @@ msgstr ""
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1466,7 +1472,7 @@ msgstr ""
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1680,8 +1686,8 @@ msgstr ""
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr ""
@@ -2364,7 +2370,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3403,7 +3409,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3868,7 +3874,7 @@ msgstr ""
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3879,7 +3885,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3939,7 +3945,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4062,7 +4068,7 @@ msgid "Delete image"
msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4564,7 +4570,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4650,15 +4656,15 @@ msgstr ""
msgid "received by"
msgstr ""
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr ""
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr ""
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr ""
@@ -4674,11 +4680,11 @@ msgstr ""
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr ""
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr ""
@@ -4749,8 +4755,8 @@ msgid "deleted"
msgstr ""
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr ""
@@ -4827,7 +4833,7 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
@@ -4876,77 +4882,77 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr ""
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr ""
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5490,12 +5496,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
@@ -5572,12 +5578,12 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5618,7 +5624,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr ""
@@ -5680,7 +5686,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5761,7 +5767,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr ""
@@ -5785,7 +5791,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5896,155 +5902,155 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6056,318 +6062,318 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr ""
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr ""
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr ""
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr ""
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr ""
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr ""
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr ""
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr ""
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr ""
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr ""
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr ""
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3820
+#: part/models.py:3824
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr ""
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7399,43 +7405,79 @@ msgstr "לא פורטה הפעולה"
msgid "No matching action found"
msgstr "פעולה מבוקשת לא נמצאה"
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+#, fuzzy
+#| msgid "No matching action found"
+msgid "Multiple matching line items found"
+msgstr "פעולה מבוקשת לא נמצאה"
+
+#: plugin/base/barcodes/api.py:503
+#, fuzzy
+#| msgid "No matching action found"
+msgid "No matching line item found"
+msgstr "פעולה מבוקשת לא נמצאה"
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+msgid "Barcode does not match an existing stock item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:563
+msgid "Stock item does not match line item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+msgid "Stock item allocated to sales order"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "Edit User Information"
+msgid "Not enough information"
+msgstr "ערוך מידע אודות המשתמש"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7471,7 +7513,7 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
+msgid "Purchase Order to allocate items against"
msgstr ""
#: plugin/base/barcodes/serializers.py:88
@@ -7494,6 +7536,30 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+msgid "Sales Order to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:147
+msgid "Sales order is not pending"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+msgid "Sales order shipment to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:167
+msgid "Shipment has already been delivered"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:173
+msgid "Quantity to allocate"
+msgstr ""
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8048,12 +8114,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr ""
@@ -8385,104 +8451,104 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr ""
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr ""
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10355,73 +10421,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr ""
@@ -10970,11 +11036,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13405,7 +13466,8 @@ msgstr ""
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
msgstr ""
@@ -13580,4 +13642,3 @@ msgstr ""
#: users/models.py:410
msgid "Permission to delete items"
msgstr ""
-
diff --git a/InvenTree/locale/hi/LC_MESSAGES/django.po b/InvenTree/locale/hi/LC_MESSAGES/django.po
index f1ee1b8c4609..79b9ad68c133 100644
--- a/InvenTree/locale/hi/LC_MESSAGES/django.po
+++ b/InvenTree/locale/hi/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:46\n"
"Last-Translator: \n"
"Language-Team: Hindi\n"
@@ -57,9 +57,9 @@ msgstr "तारीख दर्ज करें"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr ""
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr ""
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -444,12 +444,12 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:61 part/models.py:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr ""
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,7 +474,9 @@ msgstr ""
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
msgstr ""
@@ -540,123 +542,127 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr ""
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr ""
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr ""
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr ""
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr ""
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr ""
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr ""
@@ -916,14 +922,14 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -991,8 +997,8 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1022,10 +1028,10 @@ msgstr ""
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1043,7 +1049,7 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1149,7 +1155,7 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr ""
@@ -1244,7 +1250,7 @@ msgstr ""
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1259,9 +1265,9 @@ msgstr ""
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1276,7 +1282,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1316,11 +1322,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -1429,8 +1435,8 @@ msgstr ""
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1466,7 +1472,7 @@ msgstr ""
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1680,8 +1686,8 @@ msgstr ""
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr ""
@@ -2364,7 +2370,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3403,7 +3409,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3868,7 +3874,7 @@ msgstr ""
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3879,7 +3885,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3939,7 +3945,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4062,7 +4068,7 @@ msgid "Delete image"
msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4564,7 +4570,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4650,15 +4656,15 @@ msgstr ""
msgid "received by"
msgstr ""
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr ""
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr ""
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr ""
@@ -4674,11 +4680,11 @@ msgstr ""
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr ""
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr ""
@@ -4749,8 +4755,8 @@ msgid "deleted"
msgstr ""
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr ""
@@ -4827,7 +4833,7 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
@@ -4876,77 +4882,77 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr ""
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr ""
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5490,12 +5496,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
@@ -5572,12 +5578,12 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5618,7 +5624,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr ""
@@ -5680,7 +5686,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5761,7 +5767,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr ""
@@ -5785,7 +5791,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5896,155 +5902,155 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6056,318 +6062,318 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr ""
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr ""
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr ""
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr ""
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr ""
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr ""
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr ""
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr ""
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr ""
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr ""
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr ""
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3820
+#: part/models.py:3824
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr ""
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7399,43 +7405,73 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+msgid "Multiple matching line items found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:503
+msgid "No matching line item found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+msgid "Barcode does not match an existing stock item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:563
+msgid "Stock item does not match line item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+msgid "Stock item allocated to sales order"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:603
+msgid "Not enough information"
+msgstr ""
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7471,7 +7507,7 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
+msgid "Purchase Order to allocate items against"
msgstr ""
#: plugin/base/barcodes/serializers.py:88
@@ -7494,6 +7530,30 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+msgid "Sales Order to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:147
+msgid "Sales order is not pending"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+msgid "Sales order shipment to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:167
+msgid "Shipment has already been delivered"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:173
+msgid "Quantity to allocate"
+msgstr ""
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8048,12 +8108,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr ""
@@ -8385,104 +8445,104 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr ""
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr ""
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10355,73 +10415,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr ""
@@ -10970,11 +11030,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13405,7 +13460,8 @@ msgstr ""
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
msgstr ""
@@ -13580,4 +13636,3 @@ msgstr ""
#: users/models.py:410
msgid "Permission to delete items"
msgstr ""
-
diff --git a/InvenTree/locale/hu/LC_MESSAGES/django.po b/InvenTree/locale/hu/LC_MESSAGES/django.po
index 5f355e0da540..76b84bf9f9be 100644
--- a/InvenTree/locale/hu/LC_MESSAGES/django.po
+++ b/InvenTree/locale/hu/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:45\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
@@ -57,9 +57,9 @@ msgstr "Dátum megadása"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr "Hiányzó fájl"
msgid "Missing external link"
msgstr "Hiányzó külső link"
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr "Leírás, bővebb infó"
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr "Érvénytelen választás"
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr "Név"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -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:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr "Érvényes számnak kell lennie"
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,9 +474,13 @@ msgstr "Üdvözöljük a {current_site.name}-on"
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
-msgstr "Felhasználói fiókját létrehoztuk.\n\n"
+msgstr ""
+"Felhasználói fiókját létrehoztuk.\n"
+"\n"
"Bejelentkezéshez használja a jelszó beállítás funkciót (at https://{domain})."
#: InvenTree/serializers.py:519
@@ -541,123 +545,127 @@ msgstr "A távoli kép URL-je"
msgid "Downloading images from remote URL is not enabled"
msgstr "Képek letöltése távoli URL-ről nem engedélyezett"
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr "Bolgár"
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr "Cseh"
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr "Dán"
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr "Német"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr "Görög"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr "Angol"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr "Spanyol"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr "Spanyol (Mexikói)"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr "Fárszi/Perzsa"
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr "Finn"
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr "Francia"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr "Héber"
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr "Hindi"
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr "Magyar"
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "Olasz"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "Japán"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "Koreai"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "Holland"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "Norvég"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "Lengyel"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "Portugál"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr "Portugál (Brazíliai)"
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "Orosz"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr "Szlovén"
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "Svéd"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "Tháj"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "Török"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "Vietnámi"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr "Kínai (egyszerűsített)"
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr "Kínai (Hagyományos)"
@@ -917,14 +925,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:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -992,8 +1000,8 @@ msgid "Build Order Reference"
msgstr "Gyártási utasítás azonosító"
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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,10 +1031,10 @@ msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve"
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1044,7 +1052,7 @@ msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1150,7 +1158,7 @@ msgstr "Befejezés cél dátuma"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Cél dátum a gyártás befejezéséhez. Ez után késettnek számít majd."
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr "Befejezés dátuma"
@@ -1245,7 +1253,7 @@ msgstr "Gyártási kimenet nem egyezik a gyártási utasítással"
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr "Mennyiségnek nullánál többnek kell lennie"
@@ -1260,9 +1268,9 @@ msgstr "Gyártás objektum"
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1277,7 +1285,7 @@ msgstr "Gyártás objektum"
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1317,11 +1325,11 @@ msgstr "Gyártási tételnek meg kell adnia a gyártási kimenetet, mivel a fő
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "A lefoglalt mennyiség ({q}) nem lépheti túl a szabad készletet ({a})"
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr "Készlet túlfoglalva"
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr "Lefoglalt mennyiségnek nullánál többnek kell lennie"
@@ -1430,8 +1438,8 @@ msgstr "A gyártási kimenetek listáját meg kell adni"
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1467,7 +1475,7 @@ msgstr "A kész gyártási kimenetek helye"
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1486,7 +1494,8 @@ msgstr "Hiányos foglalás elfogadása"
#: build/serializers.py:507
msgid "Complete outputs if stock has not been fully allocated"
-msgstr "Kimenetek befejezése akkor is ha a készlet nem\n"
+msgstr ""
+"Kimenetek befejezése akkor is ha a készlet nem\n"
"lett teljesen lefoglalva"
#: build/serializers.py:576
@@ -1682,8 +1691,8 @@ msgstr "QR kód megjelenítése"
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr "Vonalkód leválasztása"
@@ -2366,7 +2375,7 @@ msgstr "Kategória paraméter sablonok másolása"
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:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3405,7 +3414,7 @@ msgid "Price break quantity"
msgstr "Ársáv mennyiség"
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3870,7 +3879,7 @@ msgstr "Paraméter neve"
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3881,7 +3890,7 @@ msgid "Parameter value"
msgstr "Paraméter értéke"
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3941,7 +3950,7 @@ msgid "Supplier part description"
msgstr "Beszállítói alkatrész leírása"
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4064,7 +4073,7 @@ msgid "Delete image"
msgstr "Kép törlése"
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4566,7 +4575,7 @@ msgstr "Nincs egyező beszerzési rendelés"
msgid "Purchase Order"
msgstr "Beszerzési rendelés"
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4652,15 +4661,15 @@ msgstr "Beszállítói rendelés azonosító kód"
msgid "received by"
msgstr "érkeztette"
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr "Kiállítás dátuma"
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr "Kiállítás dátuma"
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr "Rendelés teljesítési dátuma"
@@ -4676,11 +4685,11 @@ msgstr "Mennyiség pozitív kell legyen"
msgid "Company to which the items are being sold"
msgstr "Cég akinek a tételek értékesítésre kerülnek"
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr "Vevői azonosító "
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr "Megrendelés azonosító kódja a vevőnél"
@@ -4751,8 +4760,8 @@ msgid "deleted"
msgstr "törölve"
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr "Rendelés"
@@ -4829,7 +4838,7 @@ msgstr "Ellenőrizte"
msgid "User who checked this shipment"
msgstr "Felhasználó aki ellenőrizte ezt a szállítmányt"
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr "Szállítmány"
@@ -4878,77 +4887,77 @@ msgstr "Nem foglalható készlet egy olyan sorhoz amiben nincs alkatrész"
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "A lefoglalandó mennyiség nem haladhatja meg a készlet mennyiségét"
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen"
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr "Vevői rendelés nem egyezik a szállítmánnyal"
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr "Szállítmány nem egyezik a vevői rendeléssel"
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr "Sor"
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr "Vevői rendelés szállítmány azonosító"
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr "Tétel"
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr "Válaszd ki a foglalásra szánt készlet tételt"
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr "Készlet foglalási mennyiség megadása"
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr "Visszavétel azonosító"
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr "Cég akitől a tételek visszavételre kerülnek"
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr "Visszavétel állapota"
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr "Csak szériaszámos tételek rendelhetők visszaszállítási utasításhoz"
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr "Válaszd ki a vevőtől visszavenni kívánt tételt"
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr "Visszavétel dátuma"
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr "Mikor lett visszavéve a tétel"
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr "Kimenetel"
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr "Sortétel végső kimenetele"
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr "Sortétel visszaküldésének vagy javításának költsége"
@@ -5492,12 +5501,12 @@ 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:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr "Alkatrész ID"
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr "Alkatrész neve"
@@ -5574,12 +5583,12 @@ msgstr "Felhasználva ebben"
msgid "Building"
msgstr "Gyártásban"
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr "Minimum költség"
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr "Maximum költség"
@@ -5620,7 +5629,7 @@ msgstr "Alkatrészjegyzék tétel ID"
msgid "Parent IPN"
msgstr "Szülő IPN"
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr "Alkatrész IPN"
@@ -5682,7 +5691,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:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Alkatrész kategória"
@@ -5763,7 +5772,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:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr "Alkatrész neve"
@@ -5787,7 +5796,7 @@ 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:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5898,155 +5907,155 @@ msgstr "Utolsó leltár"
msgid "Sell multiple"
msgstr "Több értékesítése"
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr "Árszámítások gyorstárazásához használt pénznem"
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr "Minimum alkatrészjegyzék költség"
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr "Összetevők minimum költsége"
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr "Maximum alkatrészjegyzék költség"
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr "Összetevők maximum költsége"
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr "Minimum beszerzési ár"
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr "Eddigi minimum beszerzési költség"
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr "Maximum beszerzési ár"
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr "Eddigi maximum beszerzési költség"
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr "Minimum belső ár"
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr "Minimum költség a belső ársávok alapján"
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr "Maximum belső ár"
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr "Maximum költség a belső ársávok alapján"
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr "Minimum beszállítói ár"
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr "Minimum alkatrész ár a beszállítóktól"
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr "Maximum beszállítói ár"
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr "Maximum alkatrész ár a beszállítóktól"
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr "Minimum alkatrészváltozat ár"
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr "Alkatrészváltozatok számolt minimum költsége"
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr "Maximum alkatrészváltozat ár"
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr "Alkatrészváltozatok számolt maximum költsége"
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr "Minimum költség felülbírálása"
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr "Maximum költség felülbírálása"
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr "Számított általános minimum költség"
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr "Számított általános maximum költség"
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr "Minimum eladási ár"
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr "Minimum eladási ár az ársávok alapján"
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr "Maximum eladási ár"
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr "Maximum eladási ár az ársávok alapján"
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr "Minimum eladási költség"
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr "Eddigi minimum eladási ár"
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr "Maximum eladási költség"
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr "Eddigi maximum eladási ár"
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr "Leltározható alkatrész"
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr "Tételszám"
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr "Egyedi készlet tételek száma a leltárkor"
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr "Teljes készlet a leltárkor"
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6058,318 +6067,318 @@ msgstr "Teljes készlet a leltárkor"
msgid "Date"
msgstr "Dátum"
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr "Leltározva ekkor"
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr "További megjegyzések"
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr "Leltározta"
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr "Minimum készlet érték"
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr "Becsült minimum raktárkészlet érték"
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr "Maximum készlet érték"
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr "Becsült maximum raktárkészlet érték"
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr "Riport"
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr "Leltár riport fájl (generált)"
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr "Alkatrész szám"
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr "Leltározott alkatrészek száma"
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr "Felhasználó aki a leltár riportot kérte"
-#: part/models.py:3229
+#: part/models.py:3233
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:3246
+#: part/models.py:3250
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:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr "Teszt név"
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr "Add meg a teszt nevét"
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr "Teszt leírása"
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr "Adj hozzá egy leírást ehhez a teszthez"
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr "Kötelező"
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr "Szükséges-e hogy ez a teszt sikeres legyen?"
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr "Kötelező érték"
-#: part/models.py:3285
+#: part/models.py:3289
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:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr "Kötelező melléklet"
-#: part/models.py:3291
+#: part/models.py:3295
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:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr "Jelölőnégyzet paraméternek nem lehet mértékegysége"
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr "Jelölőnégyzet paraméternek nem lehetnek választási lehetőségei"
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr "A lehetőségek egyediek kell legyenek"
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr "A paraméter sablon nevének egyedinek kell lennie"
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr "Paraméter neve"
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr "Paraméter mértékegysége"
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr "Paraméter leírása"
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr "Jelölőnégyzet"
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr "Ez a paraméter egy jelölőnégyzet?"
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr "Lehetőségek"
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr "Választható lehetőségek (vesszővel elválasztva)"
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr "Hibás választás a paraméterre"
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr "Szülő alkatrész"
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr "Paraméter sablon"
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr "Adat"
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr "Paraméter értéke"
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr "Alapértelmezett érték"
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr "Alapértelmezett paraméter érték"
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr "Alkatrész ID vagy alkatrész név"
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr "Egyedi alkatrész ID értéke"
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr "Alkatrész IPN érték"
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr "Szint"
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr "Alkatrészjegyzék szint"
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr "Alkatrészjegyzék tétel"
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr "Szülő alkatrész kiválasztása"
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr "Al alkatrész"
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr "Válaszd ki az alkatrészjegyzékben használandó alkatrészt"
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr "Alkatrészjegyzék mennyiség ehhez az alkatrészjegyzék tételhez"
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr "Ez az alkatrészjegyzék tétel opcionális"
-#: part/models.py:3787
+#: part/models.py:3791
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:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Többlet"
-#: part/models.py:3792
+#: part/models.py:3796
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:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr "Alkatrészjegyzék tétel azonosító"
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr "Alkatrészjegyzék tétel megjegyzései"
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr "Ellenőrző összeg"
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr "Alkatrészjegyzék sor ellenőrző összeg"
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr "Jóváhagyva"
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr "Ez a BOM tétel jóvá lett hagyva"
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
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:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr "Változatok"
-#: part/models.py:3820
+#: part/models.py:3824
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:3906 stock/models.py:613
+#: part/models.py:3910 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:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr "Al alkatrészt kötelező megadni"
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr "Alkatrészjegyzék tétel helyettesítő"
-#: part/models.py:4063
+#: part/models.py:4067
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:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr "Szülő alkatrészjegyzék tétel"
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr "Helyettesítő alkatrész"
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr "1.rész"
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr "2.rész"
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr "Válassz kapcsolódó alkatrészt"
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr "Alkatrész kapcsolat nem hozható létre önmagával"
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr "Már létezik duplikált alkatrész kapcsolat"
@@ -7401,43 +7410,85 @@ msgstr "Nincs megadva művelet"
msgid "No matching action found"
msgstr "Nincs egyező művelet"
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr "Nincs egyező vonalkód"
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr "Egyezés vonalkódra"
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr "Ez a vonalkód már egy másik tételé"
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr "Nem található megfelelő alkatrész adat"
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr "Nem található megfelelő beszállítói alkatrész"
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr "Több beszállítói alkatrész található"
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr "Beszállítói alkatrész található"
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr "Ez a termék már bevételezve"
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr "Beszállítói vonalkód nem található"
+#: plugin/base/barcodes/api.py:498
+#, fuzzy
+#| msgid "Multiple matching supplier parts found"
+msgid "Multiple matching line items found"
+msgstr "Több beszállítói alkatrész található"
+
+#: plugin/base/barcodes/api.py:503
+#, fuzzy
+#| msgid "No matching line items"
+msgid "No matching line item found"
+msgstr "Nincs egyező sortétel"
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+#, fuzzy
+#| msgid "Barcode does not match valid stock item"
+msgid "Barcode does not match an existing stock item"
+msgstr "Vonalkód nem egyezik egy ismert készlet tétellel sem"
+
+#: plugin/base/barcodes/api.py:563
+#, fuzzy
+#| msgid "Selected stock item does not match BOM line"
+msgid "Stock item does not match line item"
+msgstr "A készlet tétel nem egyezik az alkatrészjegyzékkel"
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr "Nincs elegendő"
+
+#: plugin/base/barcodes/api.py:599
+#, fuzzy
+#| msgid "Stock item assigned to sales order"
+msgid "Stock item allocated to sales order"
+msgstr "Készlet tétel hozzárendelve egy vevői rendeléshez"
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "No user information"
+msgid "Not enough information"
+msgstr "Nincs felhasználói információ"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr "A vonalkódhoz több beszállítói alkatrész is tartozik"
@@ -7473,7 +7524,9 @@ msgid "Scanned barcode data"
msgstr "Beolvasott vonalkód"
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
+#, fuzzy
+#| msgid "PurchaseOrder to allocate items against"
+msgid "Purchase Order to allocate items against"
msgstr "Tételekhez rendelendő Beszerzési Rendelés"
#: plugin/base/barcodes/serializers.py:88
@@ -7496,6 +7549,42 @@ msgstr "Bevételezés erre a készlet helyre"
msgid "Cannot select a structural location"
msgstr "Struktúrális hely nem választható"
+#: plugin/base/barcodes/serializers.py:140
+#, fuzzy
+#| msgid "PurchaseOrder to allocate items against"
+msgid "Sales Order to allocate items against"
+msgstr "Tételekhez rendelendő Beszerzési Rendelés"
+
+#: plugin/base/barcodes/serializers.py:147
+#, fuzzy
+#| msgid "Purchase order is not pending"
+msgid "Sales order is not pending"
+msgstr "Beszerzési rendelés nincs függőben"
+
+#: plugin/base/barcodes/serializers.py:154
+#, fuzzy
+#| msgid "PurchaseOrder to allocate items against"
+msgid "Sales order line item to allocate items against"
+msgstr "Tételekhez rendelendő Beszerzési Rendelés"
+
+#: plugin/base/barcodes/serializers.py:160
+#, fuzzy
+#| msgid "PurchaseOrder to allocate items against"
+msgid "Sales order shipment to allocate items against"
+msgstr "Tételekhez rendelendő Beszerzési Rendelés"
+
+#: plugin/base/barcodes/serializers.py:167
+#, fuzzy
+#| msgid "Shipment has already been shipped"
+msgid "Shipment has already been delivered"
+msgstr "Szállítmány kiszállítva"
+
+#: plugin/base/barcodes/serializers.py:173
+#, fuzzy
+#| msgid "Quantity to Install"
+msgid "Quantity to allocate"
+msgstr "Beépítendő mennyiség"
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr "Címkenyomtatás sikertelen"
@@ -8050,12 +8139,12 @@ msgid "Test Results"
msgstr "Teszt eredmények"
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr "Teszt"
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr "Eredmény"
@@ -8387,104 +8476,104 @@ msgstr "Egy egység beszerzési ára a beszerzés időpontjában"
msgid "Converted to part"
msgstr "Alkatrésszé alakítva"
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr "Az alkatrész nem követésre kötelezett"
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr "Mennyiség egész szám kell legyen"
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr "A mennyiség nem haladhatja meg az elérhető készletet ({self.quantity})"
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr "A sorozatszám egész számok listája kell legyen"
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr "A mennyiség nem egyezik a megadott sorozatszámok számával"
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr "A sorozatszámok már léteznek"
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr "Készlet tétel hozzárendelve egy vevői rendeléshez"
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr "Készlet tétel beépül egy másikba"
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr "A készlet tétel más tételeket tartalmaz"
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr "Készlet tétel hozzárendelve egy vevőhöz"
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr "Készlet tétel gyártás alatt"
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr "Követésre kötelezett készlet nem vonható össze"
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr "Duplikált készlet tételek vannak"
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr "A készlet tétel ugyanarra az alkatrészre kell vonatkozzon"
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr "A készlet tétel ugyanarra a beszállítói alkatrészre kell vonatkozzon"
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr "Készlet tételek állapotainak egyeznie kell"
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Készlet tétel nem mozgatható mivel nincs készleten"
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr "Bejegyzés megjegyzései"
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr "Ehhez a teszthez meg kell adni értéket"
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr "Ehhez a teszthez fel kell tölteni mellékletet"
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr "Teszt neve"
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr "Teszt eredménye"
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr "Teszt kimeneti értéke"
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr "Teszt eredmény melléklet"
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr "Tesztek megjegyzései"
@@ -10357,73 +10446,73 @@ msgstr "Vonalkód beolvasása"
msgid "Scan Barcode"
msgstr "Vonalkód beolvasása"
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr "Nincs URL a válaszban"
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr "Ez törli a vonalkód hozzárendelést"
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr "Leválasztás"
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr "Készlet tétel törlése"
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr "Készlet bevételezése adott helyre"
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr "Készlet tétel vonalkód beolvasása, amit bevételezzünk erre a helyre"
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr "Bevételezés"
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr "Nincs vonalkód beolvasva"
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr "Készlet tétel már beolvasva"
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr "Készlet tétel már ezen a helyen van"
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr "Hozzáadott készlet tétel"
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr "Vonalkód nem egyezik egy ismert készlet tétellel sem"
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr "Készlet tároló bevételezése adott helyre"
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr "Készlet tároló vonalkód beolvasása, amit bevételezzünk erre a helyre"
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr "A vonalkód nem egyezik egy ismert hellyel sem"
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr "Készlet áthelyezése a leolvasott helyre"
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr "A vonalkód nem egyezik egy ismert hellyel sem"
@@ -10972,11 +11061,6 @@ msgstr "Követésre kötelezett alkatrész"
msgid "Unit Quantity"
msgstr "Mennyiségi egység"
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr "Nincs elegendő"
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13407,7 +13491,8 @@ msgstr "A kiválasztott SSO kiszolgáló érvénytelen, vagy nincs megfelelően
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
msgstr "A %(provider_name)s felhasználói fiókodat fogod használni a %(site_name)s belépéshez.
Kérlek töltsd ki az alábbi adatokat:"
@@ -13582,4 +13667,3 @@ msgstr "Jogosultság tételek szerkesztéséhez"
#: users/models.py:410
msgid "Permission to delete items"
msgstr "Jogosultság tételek törléséhez"
-
diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po
index 505af7dd0f85..0c9bf6ff69c2 100644
--- a/InvenTree/locale/id/LC_MESSAGES/django.po
+++ b/InvenTree/locale/id/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:46\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
@@ -57,9 +57,9 @@ msgstr "Masukkan tanggal"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr "File tidak ditemukan"
msgid "Missing external link"
msgstr "Tautan eksternal tidak ditemukan"
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr "Komentar file"
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr "Pilihan tidak valid"
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr "Nama"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -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:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr "Harus berupa angka yang valid"
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,7 +474,9 @@ msgstr ""
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
msgstr ""
@@ -540,123 +542,127 @@ msgstr "URL file gambar external"
msgid "Downloading images from remote URL is not enabled"
msgstr "Unduhan gambar dari URL external tidak aktif"
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr "Ceko"
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr "Denmark"
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr "Jerman"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr "Yunani"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr "Inggris"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr "Spanyol"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr "Spanyol (Meksiko)"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr "Farsi / Persia"
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr ""
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr "Perancis"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr "Ibrani"
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr ""
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr "Hungaria"
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "Itali"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "Jepang"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "Korea"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "Belanda"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "Norwegia"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "Polandia"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "Portugis"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr "Portugis (Brasil)"
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "Rusia"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "Swedia"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "Thai"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "Turki"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "Vietnam"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr ""
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr ""
@@ -916,14 +922,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:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -991,8 +997,8 @@ msgid "Build Order Reference"
msgstr "Referensi Order Produksi"
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1022,10 +1028,10 @@ msgstr "Produksi induk dari produksi ini"
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1043,7 +1049,7 @@ msgstr "Produksi induk dari produksi ini"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1149,7 +1155,7 @@ msgstr "Target tanggal selesai"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Target tanggal selesai produksi. Produksi akan menjadi terlambat setelah tanggal ini."
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr "Tanggal selesai"
@@ -1244,7 +1250,7 @@ msgstr "Hasil produksi tidak sesuai dengan order produksi"
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr "Jumlah harus lebih besar daripada nol"
@@ -1259,9 +1265,9 @@ msgstr ""
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1276,7 +1282,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1316,11 +1322,11 @@ msgstr "Item produksi harus menentukan hasil produksi karena bagian utama telah
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr "Item stok teralokasikan terlalu banyak"
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr "Jumlah yang dialokasikan harus lebih dari nol"
@@ -1429,8 +1435,8 @@ msgstr "Daftar hasil pesanan harus disediakan"
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1466,7 +1472,7 @@ msgstr "Lokasi hasil pesanan yang selesai"
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1680,8 +1686,8 @@ msgstr "Tampilkan kode QR"
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr ""
@@ -2364,7 +2370,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3403,7 +3409,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3868,7 +3874,7 @@ msgstr ""
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3879,7 +3885,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3939,7 +3945,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4062,7 +4068,7 @@ msgid "Delete image"
msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4564,7 +4570,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4650,15 +4656,15 @@ msgstr ""
msgid "received by"
msgstr ""
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr ""
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr ""
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr ""
@@ -4674,11 +4680,11 @@ msgstr ""
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr ""
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr ""
@@ -4749,8 +4755,8 @@ msgid "deleted"
msgstr ""
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr ""
@@ -4827,7 +4833,7 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
@@ -4876,77 +4882,77 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr ""
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr ""
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5490,12 +5496,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
@@ -5572,12 +5578,12 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5618,7 +5624,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr ""
@@ -5680,7 +5686,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5761,7 +5767,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr ""
@@ -5785,7 +5791,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5896,155 +5902,155 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6056,318 +6062,318 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr ""
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr ""
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr ""
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr ""
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr ""
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr ""
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr ""
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr ""
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr "Item tagihan material"
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr ""
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr ""
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3820
+#: part/models.py:3824
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr ""
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7399,43 +7405,81 @@ msgstr "Tidak ada tindakan yang ditentukan"
msgid "No matching action found"
msgstr "Aksi tidak ditemukan"
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+#, fuzzy
+#| msgid "No matching action found"
+msgid "Multiple matching line items found"
+msgstr "Aksi tidak ditemukan"
+
+#: plugin/base/barcodes/api.py:503
+#, fuzzy
+#| msgid "No matching action found"
+msgid "No matching line item found"
+msgstr "Aksi tidak ditemukan"
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+msgid "Barcode does not match an existing stock item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:563
+msgid "Stock item does not match line item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+#, fuzzy
+#| msgid "Stock quantity to allocate to build"
+msgid "Stock item allocated to sales order"
+msgstr "Jumlah stok yang dialokasikan ke produksi"
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "Edit User Information"
+msgid "Not enough information"
+msgstr "Ubah Informasi User"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7471,7 +7515,7 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
+msgid "Purchase Order to allocate items against"
msgstr ""
#: plugin/base/barcodes/serializers.py:88
@@ -7494,6 +7538,34 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+msgid "Sales Order to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:147
+msgid "Sales order is not pending"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+msgid "Sales order shipment to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:167
+#, fuzzy
+#| msgid "This build output has already been completed"
+msgid "Shipment has already been delivered"
+msgstr "Hasil produksi ini sudah diselesaikan"
+
+#: plugin/base/barcodes/serializers.py:173
+#, fuzzy
+#| msgid "Stock quantity to allocate to build"
+msgid "Quantity to allocate"
+msgstr "Jumlah stok yang dialokasikan ke produksi"
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8048,12 +8120,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr ""
@@ -8385,104 +8457,104 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr "Lampiran perlu diunggah untuk tes ini"
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr ""
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr ""
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10355,73 +10427,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr ""
@@ -10970,11 +11042,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13405,7 +13472,8 @@ msgstr ""
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
msgstr ""
@@ -13580,4 +13648,3 @@ msgstr ""
#: users/models.py:410
msgid "Permission to delete items"
msgstr ""
-
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index 83360f54c0de..cdb6b0372b7c 100644
--- a/InvenTree/locale/it/LC_MESSAGES/django.po
+++ b/InvenTree/locale/it/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:45\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
@@ -57,9 +57,9 @@ msgstr "Inserisci la data"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr "File mancante"
msgid "Missing external link"
msgstr "Link esterno mancante"
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr "Commento del file"
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr "Scelta non valida"
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr "Nome"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -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:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr "Deve essere un numero valido"
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,7 +474,9 @@ msgstr ""
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
msgstr ""
@@ -540,123 +542,127 @@ msgstr "URL del file immagine remota"
msgid "Downloading images from remote URL is not enabled"
msgstr "Il download delle immagini da URL remoto non è abilitato"
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr "Ceco"
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr "Danese"
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr "Tedesco"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr "Greco"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr "Inglese"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr "Spagnolo"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr "Spagnolo (Messicano)"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr "Farsi / Persiano"
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr ""
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr "Francese"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr "Ebraico"
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr ""
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr "Ungherese"
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "Italiano"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "Giapponese"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "Coreano"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "Olandese"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "Norvegese"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "Polacco"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "Portoghese"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr "Portoghese (Brasile)"
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "Russo"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr "Sloveno"
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "Svedese"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "Thailandese"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "Turco"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "Vietnamita"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr ""
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr ""
@@ -916,14 +922,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:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -991,8 +997,8 @@ msgid "Build Order Reference"
msgstr "Riferimento Ordine Di Produzione"
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1022,10 +1028,10 @@ msgstr "Ordine di produzione a cui questa produzione viene assegnata"
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1043,7 +1049,7 @@ msgstr "Ordine di produzione a cui questa produzione viene assegnata"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1149,7 +1155,7 @@ msgstr "Data completamento obiettivo"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Data di completamento della produzione. Dopo tale data la produzione sarà in ritardo."
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr "Data di completamento"
@@ -1244,7 +1250,7 @@ msgstr "L'output della produzione non corrisponde all'ordine di compilazione"
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr "La quantità deve essere maggiore di zero"
@@ -1259,9 +1265,9 @@ msgstr ""
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1276,7 +1282,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1316,11 +1322,11 @@ msgstr "L'elemento di compilazione deve specificare un output poiché la parte p
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "La quantità assegnata ({q}) non deve essere maggiore della quantità disponibile ({a})"
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr "L'articolo in giacenza è sovrallocato"
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr "La quantità di assegnazione deve essere maggiore di zero"
@@ -1429,8 +1435,8 @@ msgstr "Deve essere fornito un elenco dei risultati di produzione"
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1466,7 +1472,7 @@ msgstr "Posizione per gli output di build completati"
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1680,8 +1686,8 @@ msgstr "Mostra QR Code"
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr "Scollega Codice a Barre"
@@ -2364,7 +2370,7 @@ msgstr "Copia Template Parametri Categoria"
msgid "Copy category parameter templates when creating a part"
msgstr "Copia i modelli dei parametri categoria quando si crea un articolo"
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3403,7 +3409,7 @@ msgid "Price break quantity"
msgstr "Quantità prezzo limite"
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3868,7 +3874,7 @@ msgstr "Nome parametro"
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3879,7 +3885,7 @@ msgid "Parameter value"
msgstr "Valore del parametro"
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3939,7 +3945,7 @@ msgid "Supplier part description"
msgstr "Descrizione articolo fornitore"
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4062,7 +4068,7 @@ msgid "Delete image"
msgstr "Elimina immagine"
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4564,7 +4570,7 @@ msgstr "Nessun ordine di acquisto corrispondente trovato"
msgid "Purchase Order"
msgstr "Ordine D'Acquisto"
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4650,15 +4656,15 @@ msgstr "Codice di riferimento ordine fornitore"
msgid "received by"
msgstr "ricevuto da"
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr "Data di emissione"
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr "Data di emissione ordine"
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr "Data ordine completato"
@@ -4674,11 +4680,11 @@ msgstr "La quantità deve essere un numero positivo"
msgid "Company to which the items are being sold"
msgstr "Azienda da cui sono stati ordinati gli elementi"
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr "Riferimento Cliente "
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr "Codice di riferimento Ordine del Cliente"
@@ -4749,8 +4755,8 @@ msgid "deleted"
msgstr "eliminato"
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr "Ordine"
@@ -4827,7 +4833,7 @@ msgstr "Verificato Da"
msgid "User who checked this shipment"
msgstr "Utente che ha controllato questa spedizione"
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr "Spedizione"
@@ -4876,77 +4882,77 @@ msgstr "Impossibile allocare stock a una riga senza un articolo"
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "La quantità di ripartizione non puo' superare la disponibilità della giacenza"
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr "La quantità deve essere 1 per l'elemento serializzato"
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr "L'ordine di vendita non corrisponde alla spedizione"
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr "La spedizione non corrisponde all'ordine di vendita"
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr "Linea"
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr "Riferimento della spedizione ordine di vendita"
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr "Elemento"
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr "Seleziona elemento stock da allocare"
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr "Inserisci la quantità assegnata alla giacenza"
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr "Seleziona l'elemento da restituire dal cliente"
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr "Data di ricezione"
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr "Risultati"
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5490,12 +5496,12 @@ 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:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr "Codice Articolo"
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr "Nome Articolo"
@@ -5572,12 +5578,12 @@ msgstr "Utilizzato In"
msgid "Building"
msgstr "In Costruzione"
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr "Costo Minimo"
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr "Costo Massimo"
@@ -5618,7 +5624,7 @@ msgstr "ID Elemento Distinta Base"
msgid "Parent IPN"
msgstr "IPN Principale"
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr "IPN Articolo"
@@ -5680,7 +5686,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:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Categoria Articoli"
@@ -5761,7 +5767,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:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr "Nome articolo"
@@ -5785,7 +5791,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca"
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5896,155 +5902,155 @@ msgstr "Ultimo Inventario"
msgid "Sell multiple"
msgstr "Vendita multipla"
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr "Valuta utilizzata per calcolare i prezzi"
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr "Costo Minimo Distinta Base"
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr "Costo minimo dei componenti dell'articolo"
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr "Costo Massimo Distinta Base"
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr "Costo massimo dei componenti dell'articolo"
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr "Importo Acquisto Minimo"
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr "Costo minimo di acquisto storico"
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr "Importo massimo acquisto"
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr "Costo massimo di acquisto storico"
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr "Prezzo Interno Minimo"
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr "Costo minimo basato su interruzioni di prezzo interne"
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr "Prezzo Interno Massimo"
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr "Costo massimo basato su interruzioni di prezzo interne"
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr "Prezzo Minimo Fornitore"
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr "Prezzo minimo articolo da fornitori esterni"
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr "Prezzo Massimo Fornitore"
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr "Prezzo massimo dell'articolo proveniente da fornitori esterni"
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr "Variazione di costo minimo"
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr "Costo minimo calcolato di variazione dell'articolo"
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr "Massima variazione di costo"
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr "Costo massimo calcolato di variazione dell'articolo"
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr "Costo minimo totale calcolato"
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr "Costo massimo totale calcolato"
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr "Prezzo Di Vendita Minimo"
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr "Prezzo minimo di vendita basato sulle interruzioni di prezzo"
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr "Prezzo Di Vendita Massimo"
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr "Prezzo massimo di vendita basato sulle interruzioni di prezzo"
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr "Costo Di Vendita Minimo"
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr "Prezzo storico minimo di vendita"
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr "Costo Di Vendita Minimo"
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr "Prezzo storico massimo di vendita"
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr "Articolo per l'inventario"
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr "Contatore Elemento"
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr "Numero di scorte individuali al momento dell'inventario"
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr "Totale delle scorte disponibili al momento dell'inventario"
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6056,318 +6062,318 @@ msgstr "Totale delle scorte disponibili al momento dell'inventario"
msgid "Date"
msgstr "Data"
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr "Data in cui è stato effettuato l'inventario"
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr "Note aggiuntive"
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr "Utente che ha eseguito questo inventario"
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr "Costo Minimo Scorta"
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr "Costo minimo stimato di magazzino a disposizione"
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr "Costo Massimo Scorte"
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr "Costo massimo stimato di magazzino a disposizione"
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr "Report"
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr "File Report Inventario (generato internamente)"
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr "Conteggio Articolo"
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr "Numero di articoli oggetto d'inventario"
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr "Utente che ha richiesto questo report inventario"
-#: part/models.py:3229
+#: part/models.py:3233
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:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr "Una prova con questo nome esiste già per questo articolo"
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr "Nome Test"
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr "Inserisci un nome per la prova"
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr "Descrizione Di Prova"
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr "Inserisci descrizione per questa prova"
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr "Richiesto"
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr "Questa prova è necessaria per passare?"
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr "Valore richiesto"
-#: part/models.py:3285
+#: part/models.py:3289
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:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr "Allegato Richiesto"
-#: part/models.py:3291
+#: part/models.py:3295
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:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr "Il nome del modello del parametro deve essere univoco"
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr "Nome Parametro"
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr "Descrizione del parametro"
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr "Articolo principale"
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr "Modello Parametro"
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr "Dati"
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr "Valore del Parametro"
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr "Valore Predefinito"
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr "Valore Parametro Predefinito"
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr "ID articolo o nome articolo"
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr "Valore ID articolo univoco"
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr "Valore IPN articolo"
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr "Livello"
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr "Livello distinta base"
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr "Distinta base (Bom)"
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr "Seleziona articolo principale"
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr "Articolo subordinato"
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr "Seleziona l'articolo da utilizzare nella Distinta Base"
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr "Quantità Distinta Base per questo elemento Distinta Base"
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr "Questo elemento della Distinta Base è opzionale"
-#: part/models.py:3787
+#: part/models.py:3791
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:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Eccedenza"
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Quantità stimata scarti di produzione (assoluta o percentuale)"
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr "Riferimento Elemento Distinta Base"
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr "Note Elemento Distinta Base"
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr "Codice di controllo"
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr "Codice di controllo Distinta Base"
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr "Convalidato"
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
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:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr "Consenti Le Varianti"
-#: part/models.py:3820
+#: part/models.py:3824
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:3906 stock/models.py:613
+#: part/models.py:3910 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:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr "L'articolo subordinato deve essere specificato"
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr "Elemento Distinta Base Sostituito"
-#: part/models.py:4063
+#: part/models.py:4067
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:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr "Elemento principale Distinta Base"
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr "Sostituisci l'Articolo"
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr "Articolo 1"
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr "Articolo 2"
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr "Seleziona Prodotto Relativo"
-#: part/models.py:4120
+#: part/models.py:4124
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:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr "La relazione duplicata esiste già"
@@ -7399,43 +7405,85 @@ msgstr "Nessuna azione specificata"
msgid "No matching action found"
msgstr "Nessuna azione corrispondente trovata"
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr "Nessuna corrispondenza trovata per i dati del codice a barre"
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr "Corrispondenza trovata per i dati del codice a barre"
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr "Il codice a barre corrisponde a un elemento esistente"
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+#, fuzzy
+#| msgid "Multiple matching parts found"
+msgid "Multiple matching line items found"
+msgstr "Trovati più articoli corrispondenti"
+
+#: plugin/base/barcodes/api.py:503
+#, fuzzy
+#| msgid "No matching line items"
+msgid "No matching line item found"
+msgstr "Nessun elemento di riga corrispondente"
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+#, fuzzy
+#| msgid "Barcode does not match valid stock item"
+msgid "Barcode does not match an existing stock item"
+msgstr "Il codice a barre non corrisponde a un articolo di magazzino valido"
+
+#: plugin/base/barcodes/api.py:563
+#, fuzzy
+#| msgid "This stock item does not have any child items"
+msgid "Stock item does not match line item"
+msgstr "Questo elemento di magazzino non ha nessun elemento secondario"
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr "Scorte insufficienti disponibili"
+
+#: plugin/base/barcodes/api.py:599
+#, fuzzy
+#| msgid "Stock item assigned to sales order"
+msgid "Stock item allocated to sales order"
+msgstr "Articolo di magazzino assegnato all'ordine di vendita"
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "No user information"
+msgid "Not enough information"
+msgstr "Nessuna informazione utente"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7471,8 +7519,10 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
-msgstr ""
+#, fuzzy
+#| msgid "Purchase order no longer exists"
+msgid "Purchase Order to allocate items against"
+msgstr "L'ordine di acquisto non esiste più"
#: plugin/base/barcodes/serializers.py:88
msgid "Purchase order is not pending"
@@ -7494,6 +7544,40 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+#, fuzzy
+#| msgid "Sales Order Allocations"
+msgid "Sales Order to allocate items against"
+msgstr "Assegnazione Ordine Di Vendita"
+
+#: plugin/base/barcodes/serializers.py:147
+#, fuzzy
+#| msgid "Sales order not found"
+msgid "Sales order is not pending"
+msgstr "Ordine di Vendita non trovato"
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+#, fuzzy
+#| msgid "Sales order shipment reference"
+msgid "Sales order shipment to allocate items against"
+msgstr "Riferimento della spedizione ordine di vendita"
+
+#: plugin/base/barcodes/serializers.py:167
+#, fuzzy
+#| msgid "Shipment has already been shipped"
+msgid "Shipment has already been delivered"
+msgstr "La spedizione è già stata spedita"
+
+#: plugin/base/barcodes/serializers.py:173
+#, fuzzy
+#| msgid "Quantity to order"
+msgid "Quantity to allocate"
+msgstr "Quantità da ordinare"
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr "Stampa etichetta fallita"
@@ -8048,12 +8132,12 @@ msgid "Test Results"
msgstr "Risultati Test"
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr "Test"
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr "Risultato"
@@ -8385,104 +8469,104 @@ msgstr "Prezzo di acquisto unitario al momento dell’acquisto"
msgid "Converted to part"
msgstr "Convertito in articolo"
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr "L'articolo non è impostato come tracciabile"
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr "La quantità deve essere un numero intero"
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr "I numeri di serie devono essere numeri interi"
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr "La quantità non corrisponde ai numeri di serie"
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr "Numeri di serie già esistenti"
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr "L'elemento di magazzino è stato assegnato a un ordine di vendita"
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr "L'elemento di magazzino è installato in un altro elemento"
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr "L'elemento di magazzino contiene altri elementi"
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr "L'elemento di magazzino è stato assegnato a un cliente"
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr "L'elemento di magazzino è attualmente in produzione"
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr "Il magazzino serializzato non può essere unito"
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr "Duplica elementi di magazzino"
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr "Gli elementi di magazzino devono riferirsi allo stesso articolo"
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr "Gli elementi di magazzino devono riferirsi allo stesso articolo fornitore"
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr "I codici di stato dello stock devono corrispondere"
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Le giacenze non possono essere spostate perché non disponibili"
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr "Note d'ingresso"
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr "Il valore deve essere fornito per questo test"
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr "L'allegato deve essere caricato per questo test"
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr "Nome Test"
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr "Risultato Test"
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr "Test valore output"
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr "Risultato della prova allegato"
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr "Note del test"
@@ -10355,73 +10439,73 @@ msgstr "Scansione del codice a barre"
msgid "Scan Barcode"
msgstr "Scansiona codice a barre"
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr "Nessuna risposta dall'URL"
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr "Questo rimuoverà il collegamento al codice a barre associato"
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr "Scollega"
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr "Rimuovere l'articolo in magazzino"
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr "Scansione articoli di magazzino in sede"
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr "Scansione del codice a barre dell'articolo di magazzino per effettuare il check-in in questa sede"
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr "Check In"
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr "Non c'è un codice a barre"
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr "Articolo di magazzino già scansionato"
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr "Elemento in giacenza già in questa posizione"
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr "Aggiunta di un articolo di magazzino"
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr "Il codice a barre non corrisponde a un articolo di magazzino valido"
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr "Scansione delle scorte contenute in sede"
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr "Scansionare il codice a barre di scorta contenuta per effettuare il check-in in questa sede"
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr "Il codice a barre non corrisponde a una posizione di magazzino valida"
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr "Controlla Nella Posizione"
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr "Il codice a barre non corrisponde a una posizione valida"
@@ -10970,11 +11054,6 @@ msgstr "Parte tracciabile"
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr "Scorte insufficienti disponibili"
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13405,9 +13484,11 @@ msgstr ""
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
-msgstr "Stai per utilizzare il tuo account %(provider_name)s per accedere a\n"
+msgstr ""
+"Stai per utilizzare il tuo account %(provider_name)s per accedere a\n"
"%(site_name)s.
Per concludere, compila il seguente modulo:"
#: templates/socialaccount/snippets/provider_list.html:26
@@ -13581,4 +13662,3 @@ msgstr "Permessi per modificare gli elementi"
#: users/models.py:410
msgid "Permission to delete items"
msgstr "Autorizzazione ad eliminare gli elementi"
-
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index 6de101e61fb4..c681f74f7603 100644
--- a/InvenTree/locale/ja/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ja/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:45\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
@@ -57,9 +57,9 @@ msgstr "日付を入力する"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr "ファイルがありません"
msgid "Missing external link"
msgstr "外部リンクが見つかりません。"
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr "ファイルコメント"
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr "無効な選択です"
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr "お名前"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -444,12 +444,12 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:61 part/models.py:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr "有効な数字でなければなりません"
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,7 +474,9 @@ msgstr ""
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
msgstr ""
@@ -540,123 +542,127 @@ msgstr "外部画像ファイルのURL"
msgid "Downloading images from remote URL is not enabled"
msgstr "外部URLからの画像ダウンロードは許可されていません"
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr "チェコ語"
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr "ドイツ語"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr "ギリシャ語"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr "英語"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr "スペイン語"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr "スペイン語(メキシコ)"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr ""
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr "フランス語"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr "ヘブライ語"
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr "ヒンディー語"
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr "ハンガリー語"
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "イタリア語"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "日本語"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "韓国語"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "オランダ語"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "ノルウェー語"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "ポーランド語"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "ポルトガル語"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr "ポルトガル語 (ブラジル)"
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "ロシア語"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr "スロベニア語"
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "スウェーデン語"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "タイ語"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "トルコ語"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "ベトナム語"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr ""
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr ""
@@ -916,14 +922,14 @@ msgstr "InvenTree について"
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -991,8 +997,8 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1022,10 +1028,10 @@ msgstr ""
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1043,7 +1049,7 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1149,7 +1155,7 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr ""
@@ -1244,7 +1250,7 @@ msgstr ""
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1259,9 +1265,9 @@ msgstr ""
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1276,7 +1282,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1316,11 +1322,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -1429,8 +1435,8 @@ msgstr ""
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1466,7 +1472,7 @@ msgstr ""
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1680,8 +1686,8 @@ msgstr ""
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr ""
@@ -2364,7 +2370,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3403,7 +3409,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3868,7 +3874,7 @@ msgstr ""
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3879,7 +3885,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3939,7 +3945,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4062,7 +4068,7 @@ msgid "Delete image"
msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4564,7 +4570,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4650,15 +4656,15 @@ msgstr ""
msgid "received by"
msgstr ""
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr ""
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr ""
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr ""
@@ -4674,11 +4680,11 @@ msgstr ""
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr ""
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr ""
@@ -4749,8 +4755,8 @@ msgid "deleted"
msgstr ""
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr ""
@@ -4827,7 +4833,7 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
@@ -4876,77 +4882,77 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr ""
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr ""
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5490,12 +5496,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
@@ -5572,12 +5578,12 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5618,7 +5624,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr ""
@@ -5680,7 +5686,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "パーツカテゴリ"
@@ -5761,7 +5767,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr ""
@@ -5785,7 +5791,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5896,155 +5902,155 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6056,318 +6062,318 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr ""
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr ""
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr ""
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr ""
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr ""
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr ""
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr ""
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr ""
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr ""
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr ""
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr ""
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3820
+#: part/models.py:3824
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr ""
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7399,43 +7405,81 @@ msgstr "アクションが指定されていません"
msgid "No matching action found"
msgstr "一致するアクションが見つかりませんでした"
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+#, fuzzy
+#| msgid "No matching action found"
+msgid "Multiple matching line items found"
+msgstr "一致するアクションが見つかりませんでした"
+
+#: plugin/base/barcodes/api.py:503
+#, fuzzy
+#| msgid "No matching action found"
+msgid "No matching line item found"
+msgstr "一致するアクションが見つかりませんでした"
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+msgid "Barcode does not match an existing stock item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:563
+msgid "Stock item does not match line item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+#, fuzzy
+#| msgid "Stock item created"
+msgid "Stock item allocated to sales order"
+msgstr "在庫商品を作成しました"
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "Edit User Information"
+msgid "Not enough information"
+msgstr "ユーザー情報を編集"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7471,7 +7515,7 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
+msgid "Purchase Order to allocate items against"
msgstr ""
#: plugin/base/barcodes/serializers.py:88
@@ -7494,6 +7538,30 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+msgid "Sales Order to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:147
+msgid "Sales order is not pending"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+msgid "Sales order shipment to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:167
+msgid "Shipment has already been delivered"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:173
+msgid "Quantity to allocate"
+msgstr ""
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8048,12 +8116,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr ""
@@ -8385,104 +8453,104 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr "シリアル番号が既に存在します"
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr ""
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr ""
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10355,73 +10423,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr ""
@@ -10970,11 +11038,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13405,7 +13468,8 @@ msgstr ""
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
msgstr ""
@@ -13580,4 +13644,3 @@ msgstr "項目を編集する権限"
#: users/models.py:410
msgid "Permission to delete items"
msgstr "項目を削除する権限"
-
diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po
index d46674d03450..3f2bd471b431 100644
--- a/InvenTree/locale/ko/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ko/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:45\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
@@ -57,9 +57,9 @@ msgstr "날짜 입력"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr "존재하지 않는 파일"
msgid "Missing external link"
msgstr "존재하지 않는 외부 링크"
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr ""
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr ""
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr "이름"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -444,12 +444,12 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:61 part/models.py:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr "유효한 숫자여야 합니다"
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,7 +474,9 @@ msgstr ""
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
msgstr ""
@@ -540,123 +542,127 @@ msgstr "원격 이미지 파일의 URL"
msgid "Downloading images from remote URL is not enabled"
msgstr "원격 URL 에서 이미지 다운로드가 활성화되지 않음"
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr "체코어"
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr "덴마크어"
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr "독일어"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr "그리스어"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr "영어"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr "스페인어"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr "스페인어 (멕시코)"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr "파르시어/페르시아어"
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr "핀란드어"
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr "프랑스어"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr "히브리어"
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr "힌디어"
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr "헝가리어"
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "이탈리아어"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "일본어"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "한국어"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "네덜란드어"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "노르웨이어"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "폴란드어"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "포르투갈어"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr "포르투갈어 (브라질)"
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "러시아어"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr "슬로베니아어"
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "스웨덴어"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "태국어"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "터키어"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "베트남어"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr "중국어 (간체)"
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr "중국어 (번체)"
@@ -916,14 +922,14 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -991,8 +997,8 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1022,10 +1028,10 @@ msgstr ""
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1043,7 +1049,7 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1149,7 +1155,7 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr ""
@@ -1244,7 +1250,7 @@ msgstr ""
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr "수량 값은 0보다 커야 합니다"
@@ -1259,9 +1265,9 @@ msgstr ""
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1276,7 +1282,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1316,11 +1322,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -1429,8 +1435,8 @@ msgstr ""
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1466,7 +1472,7 @@ msgstr ""
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1680,8 +1686,8 @@ msgstr "QR 코드 보기"
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr ""
@@ -2364,7 +2370,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3403,7 +3409,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3868,7 +3874,7 @@ msgstr ""
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3879,7 +3885,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3939,7 +3945,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4062,7 +4068,7 @@ msgid "Delete image"
msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4564,7 +4570,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4650,15 +4656,15 @@ msgstr ""
msgid "received by"
msgstr ""
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr ""
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr ""
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr ""
@@ -4674,11 +4680,11 @@ msgstr ""
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr ""
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr ""
@@ -4749,8 +4755,8 @@ msgid "deleted"
msgstr ""
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr ""
@@ -4827,7 +4833,7 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
@@ -4876,77 +4882,77 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr ""
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr ""
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5490,12 +5496,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
@@ -5572,12 +5578,12 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5618,7 +5624,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr ""
@@ -5680,7 +5686,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5761,7 +5767,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr ""
@@ -5785,7 +5791,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5896,155 +5902,155 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6056,318 +6062,318 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr ""
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr ""
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr ""
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr ""
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr ""
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr ""
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr ""
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr "데이터"
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr ""
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr ""
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr ""
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr ""
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3820
+#: part/models.py:3824
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr ""
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7399,43 +7405,79 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+msgid "Multiple matching line items found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:503
+#, fuzzy
+#| msgid "No matching serial number"
+msgid "No matching line item found"
+msgstr "일치하는 일련번호가 없습니다"
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+msgid "Barcode does not match an existing stock item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:563
+msgid "Stock item does not match line item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+#, fuzzy
+#| msgid "Stock item created"
+msgid "Stock item allocated to sales order"
+msgstr "재고 항목 생성됨"
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "copy version information"
+msgid "Not enough information"
+msgstr "버전 정보 복사"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7471,7 +7513,7 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
+msgid "Purchase Order to allocate items against"
msgstr ""
#: plugin/base/barcodes/serializers.py:88
@@ -7494,6 +7536,30 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+msgid "Sales Order to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:147
+msgid "Sales order is not pending"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+msgid "Sales order shipment to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:167
+msgid "Shipment has already been delivered"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:173
+msgid "Quantity to allocate"
+msgstr ""
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8048,12 +8114,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr ""
@@ -8385,104 +8451,104 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr "일련번호가 이미 존재합니다"
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr ""
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr ""
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10355,73 +10421,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr ""
@@ -10970,11 +11036,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13405,7 +13466,8 @@ msgstr ""
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
msgstr ""
@@ -13580,4 +13642,3 @@ msgstr ""
#: users/models.py:410
msgid "Permission to delete items"
msgstr ""
-
diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po
index c49511fd7e95..ab5cc7ecafd7 100644
--- a/InvenTree/locale/nl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/nl/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:45\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
@@ -57,9 +57,9 @@ msgstr "Voer datum in"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr "Ontbrekend bestand"
msgid "Missing external link"
msgstr "Externe link ontbreekt"
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr "Bestand opmerking"
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr "Ongeldige keuze"
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr "Naam"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -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:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr "Moet een geldig nummer zijn"
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,7 +474,9 @@ msgstr ""
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
msgstr ""
@@ -540,123 +542,127 @@ msgstr "URL van extern afbeeldingsbestand"
msgid "Downloading images from remote URL is not enabled"
msgstr "Afbeeldingen van externe URL downloaden is niet ingeschakeld"
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr "Tsjechisch"
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr "Deens"
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr "Duits"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr "Grieks"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr "Engels"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr "Spaans"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr "Spaans (Mexicaans)"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr "Farsi / Perzisch"
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr "Fins"
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr "Frans"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr "Hebreeuws"
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr "Hindi"
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr "Hongaars"
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "Italiaans"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "Japans"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "Koreaans"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "Nederlands"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "Noors"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "Pools"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "Portugees"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr "Portugees (Braziliaans)"
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "Russisch"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr "Sloveens"
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "Zweeds"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "Thais"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "Turks"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "Vietnamees"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr "Chinees (vereenvoudigd)"
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr "Chinees (traditioneel)"
@@ -916,14 +922,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:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -991,8 +997,8 @@ msgid "Build Order Reference"
msgstr "Productieorderreferentie"
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1022,10 +1028,10 @@ msgstr "Productieorder waar deze productie aan is toegewezen"
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1043,7 +1049,7 @@ msgstr "Productieorder waar deze productie aan is toegewezen"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1149,7 +1155,7 @@ msgstr "Verwachte opleveringsdatum"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Doeldatum voor productie voltooiing. Productie zal achterstallig zijn na deze datum."
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr "Opleveringsdatum"
@@ -1244,7 +1250,7 @@ msgstr "Productuitvoer komt niet overeen met de Productieorder"
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr "Hoeveelheid moet groter zijn dan nul"
@@ -1259,9 +1265,9 @@ msgstr "Bouw object"
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1276,7 +1282,7 @@ msgstr "Bouw object"
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1316,11 +1322,11 @@ msgstr "Productieartikel moet een productieuitvoer specificeren, omdat het hoofd
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Toegewezen hoeveelheid ({q}) mag de beschikbare voorraad ({a}) niet overschrijden"
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr "Voorraad item is te veel toegewezen"
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr "Toewijzing hoeveelheid moet groter zijn dan nul"
@@ -1429,8 +1435,8 @@ msgstr "Een lijst van productieuitvoeren moet worden verstrekt"
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1466,7 +1472,7 @@ msgstr "Locatie van voltooide productieuitvoeren"
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1680,8 +1686,8 @@ msgstr "QR-code weergeven"
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr "Barcode loskoppelen"
@@ -2364,7 +2370,7 @@ msgstr "Kopiëer Categorieparameter Sjablonen"
msgid "Copy category parameter templates when creating a part"
msgstr "Kopieer categorieparameter sjablonen bij het aanmaken van een onderdeel"
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3403,7 +3409,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3868,7 +3874,7 @@ msgstr "Parameternaam"
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3879,7 +3885,7 @@ msgid "Parameter value"
msgstr "Parameterwaarde"
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3939,7 +3945,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4062,7 +4068,7 @@ msgid "Delete image"
msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4564,7 +4570,7 @@ msgstr ""
msgid "Purchase Order"
msgstr "Inkooporder"
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4650,15 +4656,15 @@ msgstr "Order referentiecode van leverancier"
msgid "received by"
msgstr "ontvangen door"
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr "Datum van uitgifte"
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr "Order uitgegeven op datum"
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr "Order voltooid op datum"
@@ -4674,11 +4680,11 @@ msgstr "Hoeveelheid moet een positief getal zijn"
msgid "Company to which the items are being sold"
msgstr "Bedrijf waaraan de artikelen worden verkocht"
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr "Klantreferentie "
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr "Klant order referentiecode"
@@ -4749,8 +4755,8 @@ msgid "deleted"
msgstr "verwijderd"
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr "Order"
@@ -4827,7 +4833,7 @@ msgstr "Gecontroleerd door"
msgid "User who checked this shipment"
msgstr "Gebruiker die deze zending gecontroleerd heeft"
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr "Zending"
@@ -4876,77 +4882,77 @@ msgstr "Kan voorraad niet toewijzen aan een regel zonder onderdeel"
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Toewijzingshoeveelheid kan niet hoger zijn dan de voorraadhoeveelheid"
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr "Hoeveelheid moet 1 zijn voor geserialiseerd voorraadartikel"
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr "Verkooporder komt niet overeen met zending"
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr "Verzending komt niet overeen met verkooporder"
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr "Regel"
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr "Verzendreferentie verkooporder"
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr "Artikel"
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr "Selecteer voorraadartikel om toe te wijzen"
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr "Voer voorraadtoewijzingshoeveelheid in"
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5490,12 +5496,12 @@ 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:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr "Onderdeel-id"
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr "Onderdeel naam"
@@ -5572,12 +5578,12 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5618,7 +5624,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr ""
@@ -5680,7 +5686,7 @@ msgstr "Beschikbare Voorraad"
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Onderdeel Categorie"
@@ -5761,7 +5767,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr "Onderdeel naam"
@@ -5785,7 +5791,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5896,155 +5902,155 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr "Onderdeel voor voorraadcontrole"
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6056,318 +6062,318 @@ msgstr ""
msgid "Date"
msgstr "Datum"
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr ""
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr ""
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr "Aantal onderdelen"
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr ""
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr ""
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr ""
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr "De template van de parameter moet uniek zijn"
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr "Parameternaam"
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr ""
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr "Parameter Template"
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr "Parameterwaarde"
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr "Standaard Parameter Waarde"
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr ""
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr "Stuklijstartikel"
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr ""
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr ""
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3820
+#: part/models.py:3824
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr ""
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7399,43 +7405,85 @@ msgstr "Geen actie gespecificeerd"
msgid "No matching action found"
msgstr "Geen overeenkomende actie gevonden"
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr "Geen overeenkomst gevonden voor streepjescodegegevens"
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr "Overeenkomst gevonden voor streepjescodegegevens"
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+#, fuzzy
+#| msgid "No matching line items"
+msgid "Multiple matching line items found"
+msgstr "Geen overeenkomende artikelen"
+
+#: plugin/base/barcodes/api.py:503
+#, fuzzy
+#| msgid "No matching line items"
+msgid "No matching line item found"
+msgstr "Geen overeenkomende artikelen"
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+#, fuzzy
+#| msgid "No matching stock items"
+msgid "Barcode does not match an existing stock item"
+msgstr "Geen overeenkomende voorraadartikelen"
+
+#: plugin/base/barcodes/api.py:563
+#, fuzzy
+#| msgid "Selected stock item does not match BOM line"
+msgid "Stock item does not match line item"
+msgstr "Geselecteerde voorraadartikelen komen niet overeen met de BOM-regel"
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr "Onvoldoende voorraad beschikbaar"
+
+#: plugin/base/barcodes/api.py:599
+#, fuzzy
+#| msgid "Stock item assigned to sales order"
+msgid "Stock item allocated to sales order"
+msgstr "Voorraadartikel toegewezen aan verkooporder"
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "Edit company information"
+msgid "Not enough information"
+msgstr "Bedrijfsinformatie bewerken"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7471,8 +7519,10 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
-msgstr ""
+#, fuzzy
+#| msgid "Purchase order no longer exists"
+msgid "Purchase Order to allocate items against"
+msgstr "Inkooporder bestaat niet meer"
#: plugin/base/barcodes/serializers.py:88
msgid "Purchase order is not pending"
@@ -7494,6 +7544,40 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+#, fuzzy
+#| msgid "Sales Order Allocations"
+msgid "Sales Order to allocate items against"
+msgstr "Verkoopordertoewijzingen"
+
+#: plugin/base/barcodes/serializers.py:147
+#, fuzzy
+#| msgid "Sales order not found"
+msgid "Sales order is not pending"
+msgstr "Verkooporder niet gevonden"
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+#, fuzzy
+#| msgid "Sales order shipment reference"
+msgid "Sales order shipment to allocate items against"
+msgstr "Verzendreferentie verkooporder"
+
+#: plugin/base/barcodes/serializers.py:167
+#, fuzzy
+#| msgid "Shipment has already been shipped"
+msgid "Shipment has already been delivered"
+msgstr "Verzending is al verzonden"
+
+#: plugin/base/barcodes/serializers.py:173
+#, fuzzy
+#| msgid "Quantity to order"
+msgid "Quantity to allocate"
+msgstr "Te bestellen aantal"
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8048,12 +8132,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr ""
@@ -8385,104 +8469,104 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr "Voorraadartikel is toegewezen aan een verkooporder"
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr ""
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr ""
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10355,73 +10439,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr ""
@@ -10970,11 +11054,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr "Onvoldoende voorraad beschikbaar"
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13405,7 +13484,8 @@ msgstr ""
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
msgstr ""
@@ -13580,4 +13660,3 @@ msgstr ""
#: users/models.py:410
msgid "Permission to delete items"
msgstr ""
-
diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po
index ccdb3ace2195..74e8c391d8a5 100644
--- a/InvenTree/locale/no/LC_MESSAGES/django.po
+++ b/InvenTree/locale/no/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-11 04:59+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-12 03:57\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
@@ -59,7 +59,7 @@ msgstr "Oppgi dato"
#: order/templates/order/so_sidebar.html:17 part/admin.py:40
#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr "Fil mangler"
msgid "Missing external link"
msgstr "Mangler eksternlenke"
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -474,9 +474,13 @@ msgstr "Velkommen til {current_site.name}"
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
-msgstr "Kontoen din har blitt opprettet.\n\n"
+msgstr ""
+"Kontoen din har blitt opprettet.\n"
+"\n"
"Vennligst bruk funksjonen for tilbakestilling av passord for å få tilgang (på https://{domain})."
#: InvenTree/serializers.py:519
@@ -541,123 +545,127 @@ msgstr "URLtil ekstern bildefil"
msgid "Downloading images from remote URL is not enabled"
msgstr "Nedlasting av bilder fra ekstern URL er ikke aktivert"
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr "Bulgarsk"
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr "Tsjekkisk"
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr "Dansk"
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr "Tysk"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr "Gresk"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr "Engelsk"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr "Spansk"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr "Spansk (Meksikansk)"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr "Farsi / Persisk"
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr "Finsk"
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr "Fransk"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr "Hebraisk"
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr "Hindi"
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr "Ungarsk"
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "Italiensk"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "Japansk"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "Koreansk"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "Nederlandsk"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "Norsk"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "Polsk"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "Portugisisk"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr "Portugisisk (Brasil)"
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "Russisk"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr "Slovensk"
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "Svensk"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "Thailandsk"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "Tyrkisk"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "Vietnamesisk"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr "Kinesisk (forenklet)"
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr "Kinesisk (tradisjonell)"
@@ -992,7 +1000,7 @@ msgid "Build Order Reference"
msgstr "Produksjonsordre-referanse"
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
#: part/models.py:3799 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
@@ -1044,7 +1052,7 @@ msgstr "Produksjonsordre som denne produksjonen er tildelt"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1150,7 +1158,7 @@ msgstr "Forventet sluttdato"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Måldato for ferdigstillelse. Produksjonen vil være forfalt etter denne datoen."
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr "Fullført dato"
@@ -1245,7 +1253,7 @@ msgstr "Produksjonsartikkelen samsvarer ikke med produksjonsordren"
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr "Mengden må være større enn null"
@@ -1260,7 +1268,7 @@ msgstr "Produksjonsobjekt"
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
@@ -1277,7 +1285,7 @@ msgstr "Produksjonsobjekt"
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1317,11 +1325,11 @@ msgstr "Produksjonselement må spesifisere en produksjonsartikkel, da master-del
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Tildelt antall ({q}) kan ikke overstige tilgjengelig lagerbeholdning ({a})"
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr "Lagervaren er overtildelt"
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr "Tildelingsantall må være større enn null"
@@ -1430,8 +1438,8 @@ msgstr "En liste over produksjonsartikler må oppgis"
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1467,7 +1475,7 @@ msgstr "Plassering for ferdige produksjonsartikler"
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1681,8 +1689,8 @@ msgstr "Vis QR-kode"
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr "Fjern strekkodekobling"
@@ -3404,7 +3412,7 @@ msgid "Price break quantity"
msgstr "Antall for prisbrudd"
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3869,7 +3877,7 @@ msgstr "Parameternavn"
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -4063,7 +4071,7 @@ msgid "Delete image"
msgstr "Slett bilde"
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4565,7 +4573,7 @@ msgstr "Ingen samsvarende innkjøpsordre funnet"
msgid "Purchase Order"
msgstr "Innkjøpsordre"
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4651,15 +4659,15 @@ msgstr "Leverandørens ordrereferanse"
msgid "received by"
msgstr "mottatt av"
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr "Sendt dato"
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr "Dato bestillingen ble sendt"
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr "Dato ordre ble fullført"
@@ -4675,11 +4683,11 @@ msgstr "Mengde må være positiv"
msgid "Company to which the items are being sold"
msgstr "Firma som varene selges til"
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr "Kundereferanse "
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr "Kundens ordrereferanse"
@@ -4750,8 +4758,8 @@ msgid "deleted"
msgstr "slettet"
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr "Ordre"
@@ -4828,7 +4836,7 @@ msgstr "Sjekket Av"
msgid "User who checked this shipment"
msgstr "Brukeren som sjekket forsendelsen"
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr "Forsendelse"
@@ -4877,77 +4885,77 @@ msgstr "Kan ikke tildele lagerbeholdning til en linje uten en del"
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Tildelingsantall kan ikke overstige tilgjengelig lagerbeholdning"
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr "Antall må være 1 for serialisert lagervare"
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr "Salgsordre samsvarer ikke med forsendelse"
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr "Forsendelsen samsvarer ikke med salgsordre"
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr "Linje"
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr "Forsendelsesreferanse for salgsordre"
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr "Artikkel"
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr "Velg lagervare å tildele"
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr "Angi lagertildelingsmengde"
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr "Returordre-referanse"
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr "Firmaet delen skal returneres fra"
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr "Returordrestatus"
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr "Kun serialiserte artikler kan tilordnes en Returordre"
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr "Velg artikkel som skal returneres fra kunde"
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr "Mottatt Dato"
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr "Datoen denne returartikkelen ble mottatt"
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr "Utfall"
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr "Utfall for dette linjeelementet"
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr "Kostnad forbundet med retur eller reparasjon for dette linjeelementet"
@@ -7400,43 +7408,85 @@ msgstr "Ingen handling spesifisert"
msgid "No matching action found"
msgstr "Ingen samsvarende handling funnet"
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr "Ingen treff funnet for strekkodedata"
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr "Treff funnet for strekkodedata"
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr "Strekkode samsvarer med ekisterende element"
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr "Ingen samsvarende del-data funnet"
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr "Finner ingen matchende leverandørdeler"
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr "Flere samsvarende leverandørdeler funnet"
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr "Fant leverandørdel"
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr "Artikkelen er allerede mottatt"
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr "Ingen treff for leverandørstrekkode"
+#: plugin/base/barcodes/api.py:498
+#, fuzzy
+#| msgid "Multiple matching supplier parts found"
+msgid "Multiple matching line items found"
+msgstr "Flere samsvarende leverandørdeler funnet"
+
+#: plugin/base/barcodes/api.py:503
+#, fuzzy
+#| msgid "No matching line items"
+msgid "No matching line item found"
+msgstr "Ingen samsvarende ordrelinjer"
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+#, fuzzy
+#| msgid "Barcode does not match valid stock item"
+msgid "Barcode does not match an existing stock item"
+msgstr "Strekkoden samsvarer ikke med gyldig lagervare"
+
+#: plugin/base/barcodes/api.py:563
+#, fuzzy
+#| msgid "Selected stock item does not match BOM line"
+msgid "Stock item does not match line item"
+msgstr "Valgt lagervare samsvarer ikke med BOM-linjen"
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr "Utilstrekkelig lagerbeholdning"
+
+#: plugin/base/barcodes/api.py:599
+#, fuzzy
+#| msgid "Stock item assigned to sales order"
+msgid "Stock item allocated to sales order"
+msgstr "Lagervaren er tildelt en salgsordre"
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "No user information"
+msgid "Not enough information"
+msgstr "Ingen brukerinformasjon"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr "Fant flere leverandørdeler for strekkoden"
@@ -7472,7 +7522,9 @@ msgid "Scanned barcode data"
msgstr "Skannet strekkodedata"
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
+#, fuzzy
+#| msgid "PurchaseOrder to allocate items against"
+msgid "Purchase Order to allocate items against"
msgstr "Innkjøpsordre å tildele artikler mot"
#: plugin/base/barcodes/serializers.py:88
@@ -7495,6 +7547,42 @@ msgstr "Plassering å motta deler til"
msgid "Cannot select a structural location"
msgstr "Kan ikke velge en strukturell plassering"
+#: plugin/base/barcodes/serializers.py:140
+#, fuzzy
+#| msgid "PurchaseOrder to allocate items against"
+msgid "Sales Order to allocate items against"
+msgstr "Innkjøpsordre å tildele artikler mot"
+
+#: plugin/base/barcodes/serializers.py:147
+#, fuzzy
+#| msgid "Purchase order is not pending"
+msgid "Sales order is not pending"
+msgstr "Innkjøpsordre er ikke ventende"
+
+#: plugin/base/barcodes/serializers.py:154
+#, fuzzy
+#| msgid "PurchaseOrder to allocate items against"
+msgid "Sales order line item to allocate items against"
+msgstr "Innkjøpsordre å tildele artikler mot"
+
+#: plugin/base/barcodes/serializers.py:160
+#, fuzzy
+#| msgid "PurchaseOrder to allocate items against"
+msgid "Sales order shipment to allocate items against"
+msgstr "Innkjøpsordre å tildele artikler mot"
+
+#: plugin/base/barcodes/serializers.py:167
+#, fuzzy
+#| msgid "Shipment has already been shipped"
+msgid "Shipment has already been delivered"
+msgstr "Forsendelsen er allerede sendt"
+
+#: plugin/base/barcodes/serializers.py:173
+#, fuzzy
+#| msgid "Quantity to Install"
+msgid "Quantity to allocate"
+msgstr "Antall å installere"
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr "Utskrift av etikett mislyktes"
@@ -8049,12 +8137,12 @@ msgid "Test Results"
msgstr "Testresultater"
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr "Test"
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr "Resultat"
@@ -8386,104 +8474,104 @@ msgstr "Innkjøpspris per enhet på kjøpstidspunktet"
msgid "Converted to part"
msgstr "Konvertert til del"
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr "Delen er ikke angitt som sporbar"
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr "Antall må være heltall"
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr "Antall kan ikke overstige tilgjengelig lagerbeholdning ({self.quantity})"
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr "Serienumre må være en liste over tall"
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr "Antallet stemmer ikke overens med serienumrene"
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr "Seriernummer eksisterer allerede"
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr "Lagervare har blitt tildelt en salgsordre"
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr "Lagervare er montert i en annen artikkel"
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr "Lagervare inneholder andre artikler"
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr "Lagervare har blitt tildelt til en kunde"
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr "Lagervare er for tiden i produksjon"
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr "Serialisert lagerbeholdning kan ikke slås sammen"
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr "Duplisert lagervare"
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr "Lagervarer må referere til samme del"
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr "Lagervarer må referere til samme leverandørdel"
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr "Lagerstatuskoder må være like"
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Lagervare kan ikke flyttes fordi den ikke er på lager"
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr "Oppføringsnotater"
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr "Verdi må angis for denne testen"
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr "Vedlegg må lastes opp for denne testen"
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr "Testnavn"
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr "Testresultat"
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr "Testens verdi"
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr "Vedlegg til testresultat"
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr "Testnotater"
@@ -10356,73 +10444,73 @@ msgstr "Skann strekkodedata"
msgid "Scan Barcode"
msgstr "Skann strekkode"
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr "Ingen URL i svar"
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr "Dette vil fjerne lenken til den tilknyttede strekkoden"
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr "Koble fra"
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr "Fjern lagervare"
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr "Skann lagervarer til plassering"
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr "Skann lagervarens strekkode for å sjekke inn på denne plasseringen"
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr "Sjekk inn"
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr "Ingen strekkode angitt"
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr "Lagervaren er allerede skannet"
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr "Lagrevare allerede på denne plasseringen"
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr "La til lagervare"
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr "Strekkoden samsvarer ikke med gyldig lagervare"
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr "Skann lagerbeholder til plassering"
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr "Skann lagerbeholderens strekkode for å sjekke inn på denne plasseringen"
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr "Strekkode samsvarer ikke med gyldig lagerplassering"
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr "Sjekk inn på plassering"
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr "Strekkode samsvarer ikke med en gyldig plassering"
@@ -10971,11 +11059,6 @@ msgstr "Sporbar del"
msgid "Unit Quantity"
msgstr "Enhetsantall"
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr "Utilstrekkelig lagerbeholdning"
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13406,9 +13489,11 @@ msgstr "Valgt SSO-leverandør er ugyldig, eller den er ikke riktig konfigurert"
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
-msgstr "Du er i ferd med å bruke din %(provider_name)s konto for å logge inn på\n"
+msgstr ""
+"Du er i ferd med å bruke din %(provider_name)s konto for å logge inn på\n"
"%(site_name)s.
Som et siste steg, vennligst fullfør skjemaet:"
#: templates/socialaccount/snippets/provider_list.html:26
@@ -13582,4 +13667,3 @@ msgstr "Tillatelse til å endre elementer"
#: users/models.py:410
msgid "Permission to delete items"
msgstr "Tillatelse til å slette elementer"
-
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index ba1871cda6c6..4552ae85acb9 100644
--- a/InvenTree/locale/pl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pl/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:45\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
@@ -57,9 +57,9 @@ msgstr "Wprowadź dane"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr "Brak pliku"
msgid "Missing external link"
msgstr "Brak zewnętrznego odnośnika"
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr "Komentarz pliku"
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr "Błędny wybór"
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr "Nazwa"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -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:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr "Numer musi być prawidłowy"
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,7 +474,9 @@ msgstr ""
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
msgstr ""
@@ -540,123 +542,127 @@ msgstr "Adres URL zdalnego pliku obrazu"
msgid "Downloading images from remote URL is not enabled"
msgstr "Pobieranie obrazów ze zdalnego URL nie jest włączone"
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr "Czeski"
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr "Duński"
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr "Niemiecki"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr "Grecki"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr "Angielski"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr "Hiszpański"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr "Hiszpański (Meksyk)"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr "Perski"
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr ""
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr "Francuski"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr "Hebrajski"
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr ""
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr "Węgierski"
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "Włoski"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "Japoński"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "Koreański"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "Holenderski"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "Norweski"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "Polski"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "Portugalski"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr "Portugalski (Brazylijski)"
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "Rosyjski"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr "Słoweński"
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "Szwedzki"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "Tajski"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "Turecki"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "Wietnamski"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr ""
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr ""
@@ -916,14 +922,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:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -991,8 +997,8 @@ msgid "Build Order Reference"
msgstr "Odwołanie do zamówienia wykonania"
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1022,10 +1028,10 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1043,7 +1049,7 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1149,7 +1155,7 @@ msgstr "Docelowy termin zakończenia"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Docelowa data zakończenia kompilacji. Po tej dacie kompilacja będzie zaległa."
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr "Data zakończenia"
@@ -1244,7 +1250,7 @@ msgstr "Skompilowane dane wyjściowe nie pasują do kolejności kompilacji"
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr "Ilość musi być większa niż zero"
@@ -1259,9 +1265,9 @@ msgstr ""
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1276,7 +1282,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1316,11 +1322,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr "Alokowana ilość musi być większa niż zero"
@@ -1429,8 +1435,8 @@ msgstr ""
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1466,7 +1472,7 @@ msgstr ""
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1680,8 +1686,8 @@ msgstr "Pokaż Kod QR"
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr ""
@@ -2364,7 +2370,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3403,7 +3409,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3868,7 +3874,7 @@ msgstr ""
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3879,7 +3885,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3939,7 +3945,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4062,7 +4068,7 @@ msgid "Delete image"
msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4564,7 +4570,7 @@ msgstr ""
msgid "Purchase Order"
msgstr "Zlecenie zakupu"
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4650,15 +4656,15 @@ msgstr ""
msgid "received by"
msgstr "odebrane przez"
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr "Data wydania"
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr "Data wystawienia zamówienia"
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr ""
@@ -4674,11 +4680,11 @@ msgstr "Wartość musi być liczbą dodatnią"
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr ""
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr ""
@@ -4749,8 +4755,8 @@ msgid "deleted"
msgstr ""
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr "Zamówienie"
@@ -4827,7 +4833,7 @@ msgstr "Sprawdzone przez"
msgid "User who checked this shipment"
msgstr "Użytkownik, który sprawdził tę wysyłkę"
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr "Przesyłka"
@@ -4876,77 +4882,77 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Zarezerwowana ilość nie może przekraczać ilości na stanie"
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr "Linia"
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr "Komponent"
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5490,12 +5496,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr "ID komponentu"
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr "Nazwa komponentu"
@@ -5572,12 +5578,12 @@ msgstr "Użyte w"
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5618,7 +5624,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr "IPN komponentu"
@@ -5680,7 +5686,7 @@ msgstr "Dostępna ilość"
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Kategoria komponentu"
@@ -5761,7 +5767,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr "Nazwa komponentu"
@@ -5785,7 +5791,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5896,155 +5902,155 @@ msgstr "Ostatnia inwentaryzacja"
msgid "Sell multiple"
msgstr "Sprzedaj wiele"
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6056,318 +6062,318 @@ msgstr ""
msgid "Date"
msgstr "Data"
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr ""
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr ""
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr ""
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr "Nazwa testu"
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr "Testowy opis"
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr "Wprowadź opis do tego testu"
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr "Wymagane"
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr "Wymaga wartości"
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr "Wymaga załącznika"
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr "Część nadrzędna"
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr "Dane"
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr "Wartość parametru"
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr "Wartość domyślna"
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr "Unikalny wartość ID komponentu"
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr "Wartość IPN części"
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr "Poziom"
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr "Element BOM"
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr "Wybierz część nadrzędną"
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr "Podczęść"
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr "Ten element BOM jest opcjonalny"
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr "Notatki pozycji BOM"
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr "Suma kontrolna"
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr "Zatwierdzone"
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr "Zezwalaj na warianty"
-#: part/models.py:3820
+#: part/models.py:3824
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr "Część zastępcza"
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr "Część 1"
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr "Część 2"
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr "Wybierz powiązaną część"
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7399,43 +7405,83 @@ msgstr "Nie określono działania"
msgid "No matching action found"
msgstr "Nie znaleziono pasującej akcji"
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr "Nie znaleziono wyników dla danych kodu kreskowego"
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr "Znaleziono wyniki dla danych kodu kreskowego"
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+#, fuzzy
+#| msgid "No matching shipments found"
+msgid "Multiple matching line items found"
+msgstr "Nie odnaleziono pasujących przesyłek"
+
+#: plugin/base/barcodes/api.py:503
+#, fuzzy
+#| msgid "No matching images found"
+msgid "No matching line item found"
+msgstr "Nie znaleziono pasujących obrazów"
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+msgid "Barcode does not match an existing stock item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:563
+#, fuzzy
+#| msgid "Stock item no longer exists"
+msgid "Stock item does not match line item"
+msgstr "Element magazynowy już nie istnieje"
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+#, fuzzy
+#| msgid "Allocated to Sales Orders"
+msgid "Stock item allocated to sales order"
+msgstr "Przypisane do zamówień sprzedaży"
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "No user information"
+msgid "Not enough information"
+msgstr "Brak informacji o użytkowniku"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7471,8 +7517,10 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
-msgstr ""
+#, fuzzy
+#| msgid "Purchase order no longer exists"
+msgid "Purchase Order to allocate items against"
+msgstr "Zamówienie zakupu już nie istnieje"
#: plugin/base/barcodes/serializers.py:88
msgid "Purchase order is not pending"
@@ -7494,6 +7542,36 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+msgid "Sales Order to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:147
+#, fuzzy
+#| msgid "No sales orders found"
+msgid "Sales order is not pending"
+msgstr "Nie znaleziono zamówień sprzedaży"
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+msgid "Sales order shipment to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:167
+#, fuzzy
+#| msgid "Shipment has already been sent"
+msgid "Shipment has already been delivered"
+msgstr "Przesyłka została już wysłana"
+
+#: plugin/base/barcodes/serializers.py:173
+#, fuzzy
+#| msgid "Quantity to Receive"
+msgid "Quantity to allocate"
+msgstr "Ilość do otrzymania"
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8048,12 +8126,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr "Wynik"
@@ -8385,104 +8463,104 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr "Ilość musi być liczbą całkowitą"
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr "Numer seryjny już istnieje"
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr "Notatki do wpisu"
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr "Należy podać wartość dla tego testu"
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr "Nazwa testu"
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr "Wynik testu"
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10355,73 +10433,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr "Zeskanuj kod kreskowy"
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr "Brak adresu URL w odpowiedzi"
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr "Rozłącz"
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr "Sprawdź"
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr ""
@@ -10970,11 +11048,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13405,7 +13478,8 @@ msgstr ""
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
msgstr ""
@@ -13580,4 +13654,3 @@ msgstr "Uprawnienie do edycji przedmiotów"
#: users/models.py:410
msgid "Permission to delete items"
msgstr "Uprawnienie do usuwania przedmiotów"
-
diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po
index 3108eacdd291..e8877e56edc8 100644
--- a/InvenTree/locale/pt/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pt/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:46\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
@@ -57,9 +57,9 @@ msgstr "Insira uma Data"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr "Arquivo ausente"
msgid "Missing external link"
msgstr "Link externo não encontrado"
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr "Comentario sobre arquivo"
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr "Escolha inválida"
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr "Nome"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -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:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr "Preicsa ser um numero valido"
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,7 +474,9 @@ msgstr ""
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
msgstr ""
@@ -540,123 +542,127 @@ msgstr "URL do arquivo de imagem remoto"
msgid "Downloading images from remote URL is not enabled"
msgstr "Baixar imagens de URL remota não está habilitado"
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr "Tcheco"
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr "Dinamarquês"
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr "Alemão"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr "Grego"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr "Inglês"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr "Espanhol"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr "Espanhol (Mexicano)"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr "Persa"
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr "Finlandês"
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr "Francês"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr "Hebraico"
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr "Hindu"
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr "Húngaro"
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "Italiano"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "Japonês"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "Coreano"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "Holandês"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "Norueguês"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "Polonês"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "Português"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr "Português (Brasileiro)"
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "Russo"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr "Esloveno"
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "Sueco"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "Tailandês"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "Turco"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "Vietnamita"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr "Chinês (Simplificado)"
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr "Chinês (Tradicional)"
@@ -916,14 +922,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:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -991,8 +997,8 @@ msgid "Build Order Reference"
msgstr "Referência do pedido de produção"
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1022,10 +1028,10 @@ msgstr "Pedido de produção para qual este serviço está alocado"
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1043,7 +1049,7 @@ msgstr "Pedido de produção para qual este serviço está alocado"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1149,7 +1155,7 @@ msgstr "Data alvo final"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Data alvo para finalização de produção. Estará atrasado a partir deste dia."
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr "Data de conclusão"
@@ -1244,7 +1250,7 @@ msgstr "Saída da produção não corresponde ao Pedido de Produção"
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr "Quantidade deve ser maior que zero"
@@ -1259,9 +1265,9 @@ msgstr "Objeto de produção"
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1276,7 +1282,7 @@ msgstr "Objeto de produção"
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1316,11 +1322,11 @@ msgstr "Item de produção deve especificar a saída, pois peças mestres estão
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Quantidade alocada ({q}) não deve exceder a quantidade disponível em estoque ({a})"
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr "O item do estoque está sobre-alocado"
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr "Quantidade alocada deve ser maior que zero"
@@ -1429,8 +1435,8 @@ msgstr "Uma lista de saídas de produção deve ser fornecida"
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1466,7 +1472,7 @@ msgstr "Local para saídas de produção concluídas"
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1680,8 +1686,8 @@ msgstr "Mostrar QR Code"
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr "Desatribuir Código de Barras"
@@ -2364,7 +2370,7 @@ msgstr "Copiar Parâmetros dos Modelos de Categoria"
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:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3403,7 +3409,7 @@ msgid "Price break quantity"
msgstr "Quantidade de Parcelamentos"
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3868,7 +3874,7 @@ msgstr "Nome do parâmetro"
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3879,7 +3885,7 @@ msgid "Parameter value"
msgstr "Valor do Parâmetro"
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3939,7 +3945,7 @@ msgid "Supplier part description"
msgstr "Descrição da peça fornecedor"
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4062,7 +4068,7 @@ msgid "Delete image"
msgstr "Excluir imagem"
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4564,7 +4570,7 @@ msgstr "Nenhum pedido de compra correspondente encontrado"
msgid "Purchase Order"
msgstr "Pedido de Compra"
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4650,15 +4656,15 @@ msgstr "Código de referência do pedido fornecedor"
msgid "received by"
msgstr "recebido por"
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr "Data de emissão"
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr "Dia que o pedido foi feito"
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr "Dia que o pedido foi concluído"
@@ -4674,11 +4680,11 @@ msgstr "Quantidade deve ser um número positivo"
msgid "Company to which the items are being sold"
msgstr "Empresa para qual os itens foi vendidos"
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr "Referência do Cliente "
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr "Código de Referência do pedido do cliente"
@@ -4749,8 +4755,8 @@ msgid "deleted"
msgstr "excluído"
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr "Pedido"
@@ -4827,7 +4833,7 @@ msgstr "Verificado por"
msgid "User who checked this shipment"
msgstr "Usuário que verificou esta remessa"
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr "Remessa"
@@ -4876,77 +4882,77 @@ msgstr "Não é possível alocar uma linha sem uma peça"
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "A quantidade de alocação não pode exceder a quantidade em estoque"
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr "Quantidade deve ser 1 para item de estoque serializado"
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr "Pedidos de venda não coincidem com a remessa"
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr "Remessa não coincide com pedido de venda"
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr "Linha"
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr "Referência de remessa do pedido de venda"
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr "Item"
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr "Selecione o item de estoque para alocar"
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr "Insira a quantidade de atribuição de estoque"
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr "Referência de Pedidos de Devolução"
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr "Empresa da qual os itens estão sendo retornados"
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr "Estado do pedido de retorno"
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr "Somente itens da série podem ser devolvidos"
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr "Selecione o item a ser devolvido pelo cliente"
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr "Data de Recebimento"
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr "Data que o pedido a ser devolvido foi recebido"
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr "Despesa/gastos"
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr "Gastos com esta linha de itens"
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr "Gastos para reparar e/ou devolver esta linha de itens"
@@ -5490,12 +5496,12 @@ 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:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr "ID da Peça"
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr "Nome da Peça"
@@ -5572,12 +5578,12 @@ msgstr "Usado em"
msgid "Building"
msgstr "Produzindo"
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr "Custo Mínimo"
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr "Custo Máximo"
@@ -5618,7 +5624,7 @@ msgstr "ID Item LDM"
msgid "Parent IPN"
msgstr "IPN Paternal"
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr "IPN da Peça"
@@ -5680,7 +5686,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:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Categoria da Peça"
@@ -5761,7 +5767,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:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr "Nome da peça"
@@ -5785,7 +5791,7 @@ 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:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5896,155 +5902,155 @@ msgstr "Último Balanço"
msgid "Sell multiple"
msgstr "Venda múltipla"
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr "Moeda usada para armazenar os cálculos de preços"
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr "Custo Mínimo da LDM"
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr "Custo mínimo das peças componentes"
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr "Custo Máximo da LDM"
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr "Custo máximo das peças componentes"
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr "Custo Mínimo de Compra"
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr "Custo mínimo histórico de compra"
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr "Custo Máximo de Compra"
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr "Custo máximo histórico de compra"
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr "Preço Interno Mínimo"
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr "Custo mínimo baseado nos intervalos de preço internos"
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr "Preço Interno Máximo"
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr "Custo máximo baseado nos intervalos de preço internos"
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr "Preço Mínimo do Fornecedor"
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr "Preço mínimo da peça de fornecedores externos"
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr "Preço Máximo do Fornecedor"
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr "Preço máximo da peça de fornecedores externos"
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr "Custo Mínimo variável"
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr "Custo mínimo calculado das peças variáveis"
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr "Custo Máximo Variável"
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr "Custo máximo calculado das peças variáveis"
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr "Custo total mínimo calculado"
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr "Custo total máximo calculado"
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr "Preço Mínimo de Venda"
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr "Preço mínimo de venda baseado nos intervalos de preço"
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr "Preço Máximo de Venda"
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr "Preço máximo de venda baseado nos intervalos de preço"
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr "Custo Mínimo de Venda"
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr "Preço histórico mínimo de venda"
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr "Custo Máximo de Venda"
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr "Preço histórico máximo de venda"
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr "Peça para Balanço"
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr "Total de Itens"
-#: part/models.py:2980
+#: part/models.py:2984
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:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr "Estoque total disponível no momento do balanço"
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6056,318 +6062,318 @@ msgstr "Estoque total disponível no momento do balanço"
msgid "Date"
msgstr "Data"
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr "Data de realização do balanço"
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr "Notas adicionais"
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr "Usuário que fez o balanço"
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr "Custo Mínimo de Estoque"
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr "Custo mínimo estimado de estoque disponível"
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr "Custo Máximo de Estoque"
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr "Custo máximo estimado de estoque disponível"
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr "Reportar"
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr "Arquivo de Relatório de Balanço (gerado internamente)"
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr "Contagem de Peças"
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr "Número de peças cobertas pelo Balanço"
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr "Usuário que solicitou este relatório de balanço"
-#: part/models.py:3229
+#: part/models.py:3233
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:3246
+#: part/models.py:3250
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:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr "Nome de Teste"
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr "Insira um nome para o teste"
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr "Descrição do Teste"
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr "Digite a descrição para este teste"
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr "Requerido"
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr "Este teste é obrigatório passar?"
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr "Requer Valor"
-#: part/models.py:3285
+#: part/models.py:3289
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:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr "Anexo obrigatório"
-#: part/models.py:3291
+#: part/models.py:3295
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:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr "Parâmetros da caixa de seleção não podem ter unidades"
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr "Os parâmetros da caixa de seleção não podem ter escolhas"
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr "Escolhas devem ser únicas"
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr "Nome do modelo de parâmetro deve ser único"
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr "Nome do Parâmetro"
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr "Unidades físicas para este parâmetro"
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr "Descrição do Parâmetro"
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr "Caixa de seleção"
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr "Este parâmetro é uma caixa de seleção?"
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr "Escolhas"
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr "Opções válidas para este parâmetro (separadas por vírgulas)"
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr "Escolha inválida para valor do parâmetro"
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr "Peça Paternal"
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr "Modelo de parâmetro"
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr "Dados"
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr "Valor do Parâmetro"
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr "Valor Padrão"
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr "Valor Padrão do Parâmetro"
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr "ID da peça ou nome da peça"
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr "Valor exclusivo do ID de peça"
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr "Valor da parte IPN"
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr "Nível"
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr "Nível da LDM"
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr "Item LDM"
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr "Selecione a Peça Parental"
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr "Sub peça"
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr "Selecionar peça a ser usada na LDM"
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr "Quantidade de LDM para este item LDM"
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr "Este item LDM é opcional"
-#: part/models.py:3787
+#: part/models.py:3791
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:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Excedente"
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Quantidade estimada de desperdício (absoluto ou porcentagem)"
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr "Referência do Item LDM"
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr "Notas do Item LDM"
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr "Soma de verificação"
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr "Soma de Verificação da LDM da linha"
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr "Validado"
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr "O item da LDM foi validado"
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
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:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr "Permitir variações"
-#: part/models.py:3820
+#: part/models.py:3824
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:3906 stock/models.py:613
+#: part/models.py:3910 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:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr "Sub peça deve ser especificada"
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr "Substituir Item da LDM"
-#: part/models.py:4063
+#: part/models.py:4067
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:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr "Item LDM Parental"
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr "Substituir peça"
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr "Parte 1"
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr "Parte 2"
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr "Selecionar Peça Relacionada"
-#: part/models.py:4120
+#: part/models.py:4124
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:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr "Relação duplicada já existe"
@@ -7399,43 +7405,85 @@ msgstr "Nenhuma ação especificada"
msgid "No matching action found"
msgstr "Nenhuma ação correspondente encontrada"
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr "Nenhum resultado encontrado para os dados do código de barras"
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr "Coincidência encontrada para dados de código de barras"
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr "Código de barras corresponde ao item existente"
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+#, fuzzy
+#| msgid "Multiple matching parts found"
+msgid "Multiple matching line items found"
+msgstr "Múltiplas peças correspondentes encontradas"
+
+#: plugin/base/barcodes/api.py:503
+#, fuzzy
+#| msgid "No matching line items"
+msgid "No matching line item found"
+msgstr "Nenhum item de linha correspondente"
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+#, fuzzy
+#| msgid "Barcode does not match valid stock item"
+msgid "Barcode does not match an existing stock item"
+msgstr "Código de barras não corresponde a item de estoque válido"
+
+#: plugin/base/barcodes/api.py:563
+#, fuzzy
+#| msgid "Selected stock item does not match BOM line"
+msgid "Stock item does not match line item"
+msgstr "Item estoque selecionado não coincide com linha da LDM"
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr "Estoque insuficiente disponível"
+
+#: plugin/base/barcodes/api.py:599
+#, fuzzy
+#| msgid "Stock item assigned to sales order"
+msgid "Stock item allocated to sales order"
+msgstr "Item de estoque atribuído para pedido de venda"
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "No user information"
+msgid "Not enough information"
+msgstr "Sem informações de usuário"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7471,8 +7519,10 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
-msgstr ""
+#, fuzzy
+#| msgid "Purchase order no longer exists"
+msgid "Purchase Order to allocate items against"
+msgstr "Pedido de Compra não existe mais"
#: plugin/base/barcodes/serializers.py:88
msgid "Purchase order is not pending"
@@ -7494,6 +7544,40 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+#, fuzzy
+#| msgid "Sales Order Allocations"
+msgid "Sales Order to allocate items against"
+msgstr "Alocações do Pedido de Vendas"
+
+#: plugin/base/barcodes/serializers.py:147
+#, fuzzy
+#| msgid "Sales order not found"
+msgid "Sales order is not pending"
+msgstr "Pedido de Venda não encontrado"
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+#, fuzzy
+#| msgid "Sales order shipment reference"
+msgid "Sales order shipment to allocate items against"
+msgstr "Referência de remessa do pedido de venda"
+
+#: plugin/base/barcodes/serializers.py:167
+#, fuzzy
+#| msgid "Shipment has already been shipped"
+msgid "Shipment has already been delivered"
+msgstr "O pedido já foi enviado"
+
+#: plugin/base/barcodes/serializers.py:173
+#, fuzzy
+#| msgid "Quantity to order"
+msgid "Quantity to allocate"
+msgstr "Quantidade de compra"
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr "Impressão de etiqueta falhou"
@@ -8048,12 +8132,12 @@ msgid "Test Results"
msgstr "Resultados do teste"
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr "Teste"
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr "Resultado"
@@ -8385,104 +8469,104 @@ msgstr "Preço de compra unitário único no momento da compra"
msgid "Converted to part"
msgstr "Convertido para peça"
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr "Peça não está definida como rastreável"
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr "Quantidade deve ser inteira"
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr "Números de série devem ser uma lista de números inteiros"
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr "A quantidade não corresponde aos números de série"
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr "Números de série já existem"
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr "Item em estoque foi reservado para um pedido"
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr "Item em estoque está instalado em outro item"
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr "item em estoque contem outro(s) items"
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr "Item em estoque foi reservado para outro cliente"
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr "Item no estoque está em produção no momento"
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr "Itens de série não podem ser mesclados"
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr "Item de estoque duplicado"
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr "Itens de estoque devem se referir à mesma peça"
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr "Itens de estoque devem se referir à mesma peça do fornecedor"
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr "Códigos de estado do estoque devem corresponder"
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Item do estoque não pode ser realocado se não houver estoque da mesma"
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr "Observações de entrada"
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr "Deve-se fornecer o valor desse teste"
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr "O anexo deve ser enviado para este teste"
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr "Nome de teste"
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr "Resultado do teste"
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr "Valor da saída do teste"
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr "Anexo do resultado do teste"
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr "Notas do teste"
@@ -10355,73 +10439,73 @@ msgstr "Ler dados do código de barras"
msgid "Scan Barcode"
msgstr "Ler Código de Barras"
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr "Nenhuma URL em resposta"
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr "Isto irá remover o link com o código de barras associado"
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr "Desassociar"
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr "Remover item de estoque"
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr "Escanear Itens de Estoque para Local"
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr "Digitalize o código de barras de itens padrão para fazer check-in para esta localização"
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr "Registrar-se"
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr "Nenhum código de barras fornecido"
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr "Item de estoque já escaneado"
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr "Item de estoque já está nesta localização"
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr "Item de estoque adicionado"
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr "Código de barras não corresponde a item de estoque válido"
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr "Varredura de contêiner do estoque para localização"
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr "Digitalize o código de barras do contêiner para fazer check-in para esta localização"
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr "Código de barras não corresponde ao local de estoque válido"
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr "Registrar no local"
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr "Código de barras não corresponde a um local válido"
@@ -10970,11 +11054,6 @@ msgstr "Peça rastreável"
msgid "Unit Quantity"
msgstr "Quantidade unitária"
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr "Estoque insuficiente disponível"
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13405,9 +13484,11 @@ msgstr "O provedor de SSO selecionado é inválido ou não foi configurado corre
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
-msgstr "Você está prestes a usar sua conta do %(provider_name)s para entrar no\n"
+msgstr ""
+"Você está prestes a usar sua conta do %(provider_name)s para entrar no\n"
"%(site_name)s.
Como etapa final, por favor, complete o seguinte formulário:"
#: templates/socialaccount/snippets/provider_list.html:26
@@ -13581,4 +13662,3 @@ msgstr "Permissões para editar itens"
#: users/models.py:410
msgid "Permission to delete items"
msgstr "Permissão para excluir itens"
-
diff --git a/InvenTree/locale/pt_br/LC_MESSAGES/django.po b/InvenTree/locale/pt_br/LC_MESSAGES/django.po
index ce55ed0f7d97..e6599d749578 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-12-10 22:58+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -58,9 +58,9 @@ msgstr ""
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -255,7 +255,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -298,8 +298,8 @@ msgstr ""
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -345,7 +345,7 @@ msgstr ""
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -370,7 +370,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -445,12 +445,12 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:61 part/models.py:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr ""
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -543,123 +543,127 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr ""
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr ""
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr ""
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr ""
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr ""
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr ""
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr ""
@@ -919,14 +923,14 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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,8 +998,8 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1025,10 +1029,10 @@ msgstr ""
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1046,7 +1050,7 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1152,7 +1156,7 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr ""
@@ -1247,7 +1251,7 @@ msgstr ""
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1262,9 +1266,9 @@ msgstr ""
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1279,7 +1283,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1319,11 +1323,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -1432,8 +1436,8 @@ msgstr ""
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1469,7 +1473,7 @@ msgstr ""
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1683,8 +1687,8 @@ msgstr ""
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr ""
@@ -2367,7 +2371,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3406,7 +3410,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3871,7 +3875,7 @@ msgstr ""
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3882,7 +3886,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3942,7 +3946,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4065,7 +4069,7 @@ msgid "Delete image"
msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4567,7 +4571,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4653,15 +4657,15 @@ msgstr ""
msgid "received by"
msgstr ""
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr ""
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr ""
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr ""
@@ -4677,11 +4681,11 @@ msgstr ""
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr ""
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr ""
@@ -4752,8 +4756,8 @@ msgid "deleted"
msgstr ""
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr ""
@@ -4830,7 +4834,7 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
@@ -4879,77 +4883,77 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr ""
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr ""
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5493,12 +5497,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
@@ -5575,12 +5579,12 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5621,7 +5625,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr ""
@@ -5683,7 +5687,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5764,7 +5768,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr ""
@@ -5788,7 +5792,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5899,155 +5903,155 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6059,318 +6063,318 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr ""
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr ""
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr ""
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr ""
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr ""
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr ""
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr ""
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr ""
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr ""
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr ""
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr ""
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3820
+#: part/models.py:3824
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr ""
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7402,43 +7406,73 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+msgid "Multiple matching line items found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:503
+msgid "No matching line item found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+msgid "Barcode does not match an existing stock item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:563
+msgid "Stock item does not match line item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+msgid "Stock item allocated to sales order"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:603
+msgid "Not enough information"
+msgstr ""
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7474,7 +7508,7 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
+msgid "Purchase Order to allocate items against"
msgstr ""
#: plugin/base/barcodes/serializers.py:88
@@ -7497,6 +7531,30 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+msgid "Sales Order to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:147
+msgid "Sales order is not pending"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+msgid "Sales order shipment to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:167
+msgid "Shipment has already been delivered"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:173
+msgid "Quantity to allocate"
+msgstr ""
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8051,12 +8109,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr ""
@@ -8388,104 +8446,104 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr ""
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr ""
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10358,73 +10416,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr ""
@@ -10973,11 +11031,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index 9d830430fab3..4ea6305120ba 100644
--- a/InvenTree/locale/ru/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ru/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:45\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
@@ -57,9 +57,9 @@ msgstr "Введите дату"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr "Файл не найден"
msgid "Missing external link"
msgstr "Отсутствует внешняя ссылка"
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr "Комментарий к файлу"
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr "Неверный выбор"
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr "Название"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -444,12 +444,12 @@ msgstr "Ошибка сервера"
msgid "An error has been logged by the server."
msgstr "Сервер зарегистрировал ошибку."
-#: InvenTree/serializers.py:61 part/models.py:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr "Должно быть действительным номером"
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,7 +474,9 @@ msgstr ""
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
msgstr ""
@@ -540,123 +542,127 @@ msgstr "ССЫЛКА файла изображения на удаленном
msgid "Downloading images from remote URL is not enabled"
msgstr "Загрузка изображений с удаленного URL-адреса не включена"
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr "Чешский"
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr "Датский"
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr "Немецкий"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr "Греческий"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr "Английский"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr "Испанский"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr "Испанский (Мексика)"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr "Фарси / Персидский"
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr "Финский"
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr "Французский"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr "Иврит"
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr "Хинди"
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr "Венгерский"
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "Итальянский"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "Японский"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "Корейский"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "Голландский"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "Норвежский"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "Польский"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "Португальский"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr "Португальский (Бразильский диалект)"
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "Русский"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr "Словенский"
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "Шведский"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "Тайский"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "Турецкий"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "Вьетнамский"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr "Китайский (Упрощенный)"
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr "Китайский (Традиционный)"
@@ -916,14 +922,14 @@ msgstr "О программе InvenTree"
msgid "Build must be cancelled before it can be deleted"
msgstr "Сборка должна быть отменена перед удалением"
-#: build/api.py:281 part/models.py:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -991,8 +997,8 @@ msgid "Build Order Reference"
msgstr "Ссылка на заказ"
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1022,10 +1028,10 @@ msgstr "ПорядокСборки, которому выделяется эта
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1043,7 +1049,7 @@ msgstr "ПорядокСборки, которому выделяется эта
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1149,7 +1155,7 @@ msgstr "Целевая дата завершения"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Целевая дата для сборки. Сборка будет просрочена после этой даты."
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr "Дата завершения"
@@ -1244,7 +1250,7 @@ msgstr "Вывод сборки не совпадает с порядком сб
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr "Количество должно быть больше нуля"
@@ -1259,9 +1265,9 @@ msgstr "Построить объект"
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1276,7 +1282,7 @@ msgstr "Построить объект"
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1316,11 +1322,11 @@ msgstr "Элемент сборки должен указать вывод сб
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Выделенное количество ({q}) не должно превышать доступное количество на складе ({a})"
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr "Предмет на складе перераспределен"
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr "Выделенное количество должно быть больше нуля"
@@ -1429,8 +1435,8 @@ msgstr "Необходимо представить список результ
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1466,7 +1472,7 @@ msgstr "Расположение для завершенных выходов с
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1680,8 +1686,8 @@ msgstr "Показать QR-код"
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr "Отвязать штрих-код"
@@ -2364,7 +2370,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3403,7 +3409,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3868,7 +3874,7 @@ msgstr "Наименование параметра"
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3879,7 +3885,7 @@ msgid "Parameter value"
msgstr "Значение параметра"
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3939,7 +3945,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4062,7 +4068,7 @@ msgid "Delete image"
msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4564,7 +4570,7 @@ msgstr ""
msgid "Purchase Order"
msgstr "Заказ на закупку"
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4650,15 +4656,15 @@ msgstr ""
msgid "received by"
msgstr ""
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr ""
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr ""
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr ""
@@ -4674,11 +4680,11 @@ msgstr ""
msgid "Company to which the items are being sold"
msgstr "Компания, которой детали продаются"
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr ""
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr ""
@@ -4749,8 +4755,8 @@ msgid "deleted"
msgstr ""
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr ""
@@ -4827,7 +4833,7 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
@@ -4876,77 +4882,77 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr ""
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr ""
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr "Укажите количество на складе"
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr "Выберите товар возврата от клиента"
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5490,12 +5496,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr "Артикул"
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr "Наименование детали"
@@ -5572,12 +5578,12 @@ msgstr "Используется в"
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5618,7 +5624,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr "IPN"
@@ -5680,7 +5686,7 @@ msgstr "Доступный запас"
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Категория детали"
@@ -5761,7 +5767,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr "Наименование детали"
@@ -5785,7 +5791,7 @@ msgstr "Описание детали (необязательно)"
msgid "Part keywords to improve visibility in search results"
msgstr "Ключевые слова для улучшения видимости в результатах поиска"
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5896,155 +5902,155 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6056,318 +6062,318 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr ""
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr ""
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr ""
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
msgid "Test templates can only be created for trackable parts"
msgstr "Тестовые шаблоны могут быть созданы только для отслеживаемых деталей"
-#: part/models.py:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr "Название теста"
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr "Введите имя для теста"
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr ""
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr "Введите описание для этого теста"
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr ""
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr "Родительская деталь"
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr "Шаблон параметра"
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr "Артикул или наименование детали"
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr "Значение IPN"
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr ""
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr "BOM Компонент"
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr "Выберите родительскую деталь"
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr ""
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr "Выбрать деталь для использования в BOM"
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr "Эта позиция - расходник. (она не отслеживается в заказах на сборку)"
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr "Разрешить разновидности"
-#: part/models.py:3820
+#: part/models.py:3824
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr "Для отслеживаемых деталей количество должно быть целым числом"
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr ""
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr "Часть 1"
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr "Часть 2"
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr "Выберите связанную часть"
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7399,43 +7405,85 @@ msgstr "Действие не указано"
msgid "No matching action found"
msgstr "Соответствующее действие не найдено"
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr "Не найдено совпадений для данных штрих-кода"
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr "Найдено совпадение по штрих-коду"
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+#, fuzzy
+#| msgid "No matching images found"
+msgid "Multiple matching line items found"
+msgstr "Подходящие изображения не найдены"
+
+#: plugin/base/barcodes/api.py:503
+#, fuzzy
+#| msgid "No matching images found"
+msgid "No matching line item found"
+msgstr "Подходящие изображения не найдены"
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+#, fuzzy
+#| msgid "Batch code for this stock item"
+msgid "Barcode does not match an existing stock item"
+msgstr "Код партии для этой единицы хранения"
+
+#: plugin/base/barcodes/api.py:563
+#, fuzzy
+#| msgid "Selected stock item does not match BOM line"
+msgid "Stock item does not match line item"
+msgstr "Выбранный товар на складе не соответствует строке BOM"
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+#, fuzzy
+#| msgid "Stock quantity to allocate to build"
+msgid "Stock item allocated to sales order"
+msgstr "Количество на складе для построения"
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "Edit company information"
+msgid "Not enough information"
+msgstr "Редактировать информацию о компании"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7471,8 +7519,10 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
-msgstr ""
+#, fuzzy
+#| msgid "Purchase Order Settings"
+msgid "Purchase Order to allocate items against"
+msgstr "Настройки заказа на закупку"
#: plugin/base/barcodes/serializers.py:88
msgid "Purchase order is not pending"
@@ -7494,6 +7544,36 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+msgid "Sales Order to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:147
+#, fuzzy
+#| msgid "Sales order not found"
+msgid "Sales order is not pending"
+msgstr "Заказ на продажу не найден"
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+msgid "Sales order shipment to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:167
+#, fuzzy
+#| msgid "This build output has already been completed"
+msgid "Shipment has already been delivered"
+msgstr "Результат этой сборки уже помечен как завершенный"
+
+#: plugin/base/barcodes/serializers.py:173
+#, fuzzy
+#| msgid "Stock quantity to allocate to build"
+msgid "Quantity to allocate"
+msgstr "Количество на складе для построения"
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8048,12 +8128,12 @@ msgid "Test Results"
msgstr "Результаты проверки"
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr "Проверка"
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr ""
@@ -8385,104 +8465,104 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr "Деталь не является отслеживаемой"
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr "Серийные номера уже существуют"
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr ""
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr ""
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10355,73 +10435,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr ""
@@ -10970,11 +11050,6 @@ msgstr "Отслеживаемая деталь"
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13405,7 +13480,8 @@ msgstr ""
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
msgstr ""
@@ -13580,4 +13656,3 @@ msgstr "Разрешение на редактирование элементо
#: users/models.py:410
msgid "Permission to delete items"
msgstr "Разрешение на удаление элементов"
-
diff --git a/InvenTree/locale/sl/LC_MESSAGES/django.po b/InvenTree/locale/sl/LC_MESSAGES/django.po
index 2d0d6cbe676f..fb088dfc7f76 100644
--- a/InvenTree/locale/sl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/sl/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:45\n"
"Last-Translator: \n"
"Language-Team: Slovenian\n"
@@ -57,9 +57,9 @@ msgstr "Vnesi datum"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr "Manjka datoteka"
msgid "Missing external link"
msgstr "Manjka zunanja povezava"
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr "Komentar datoteke"
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr "Nedovoljena izbira"
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr "Ime"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -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:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr "Mora biti veljavna številka"
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,7 +474,9 @@ msgstr ""
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
msgstr ""
@@ -540,123 +542,127 @@ msgstr "Povezava do oddaljene slike"
msgid "Downloading images from remote URL is not enabled"
msgstr "Prenos slik iz oddaljene povezave ni omogočen"
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr "Češko"
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr "Danščina"
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr "Nemščina"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr "Grščina"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr "Angleščina"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr "Španščina"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr "Španščina (Mehiško)"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr "Farsi / Perzijsko"
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr ""
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr "Francoščina"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr "Hebrejščina"
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr ""
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr "Madžarščina"
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "Italijanščina"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "Japonščina"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "Korejščina"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "Nizozemščina"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "Norveščina"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "Poljščina"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "Portugalščina"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr "Portugalščina (Brazilsko)"
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "Ruščina"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr "Slovenščina"
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "Švedščina"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "Tajščina"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "Turščina"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "Vietnamščina"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr ""
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr ""
@@ -916,14 +922,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:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -991,8 +997,8 @@ msgid "Build Order Reference"
msgstr "Referenca naloga izgradnje"
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1022,10 +1028,10 @@ msgstr "Nalog izgradnje na katerega se ta izgradnaj nanaša"
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1043,7 +1049,7 @@ msgstr "Nalog izgradnje na katerega se ta izgradnaj nanaša"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1149,7 +1155,7 @@ msgstr "Rok dokončanja"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Rok končanja izdelave. Izdelava po tem datumu bo v zamudi po tem datumu."
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr "Datom končanja"
@@ -1244,7 +1250,7 @@ msgstr "Izgradnja se ne ujema s nalogom izdelave"
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1259,9 +1265,9 @@ msgstr ""
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1276,7 +1282,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1316,11 +1322,11 @@ msgstr "Izdelana postavka mora imeti izgradnjo, če je glavni del označen kot s
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Prestavljena zaloga ({q}) ne sme presegati zaloge ({a})"
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr "Preveč zaloge je prestavljene"
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr "Prestavljena količina mora biti večja od 0"
@@ -1429,8 +1435,8 @@ msgstr ""
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1466,7 +1472,7 @@ msgstr ""
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1680,8 +1686,8 @@ msgstr ""
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr ""
@@ -2364,7 +2370,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3403,7 +3409,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3868,7 +3874,7 @@ msgstr ""
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3879,7 +3885,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3939,7 +3945,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4062,7 +4068,7 @@ msgid "Delete image"
msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4564,7 +4570,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4650,15 +4656,15 @@ msgstr ""
msgid "received by"
msgstr ""
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr ""
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr ""
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr ""
@@ -4674,11 +4680,11 @@ msgstr ""
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr ""
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr ""
@@ -4749,8 +4755,8 @@ msgid "deleted"
msgstr ""
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr ""
@@ -4827,7 +4833,7 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
@@ -4876,77 +4882,77 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr ""
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr ""
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5490,12 +5496,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
@@ -5572,12 +5578,12 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5618,7 +5624,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr ""
@@ -5680,7 +5686,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5761,7 +5767,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr ""
@@ -5785,7 +5791,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5896,155 +5902,155 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6056,318 +6062,318 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr ""
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr ""
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr ""
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr ""
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr ""
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr ""
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr ""
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr ""
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr ""
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr ""
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr ""
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3820
+#: part/models.py:3824
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr ""
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7399,43 +7405,77 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+msgid "Multiple matching line items found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:503
+msgid "No matching line item found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+msgid "Barcode does not match an existing stock item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:563
+msgid "Stock item does not match line item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+#, fuzzy
+#| msgid "Stock quantity to allocate to build"
+msgid "Stock item allocated to sales order"
+msgstr "Količina zaloge za prestavljanje za izgradnjo"
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "Edit User Information"
+msgid "Not enough information"
+msgstr "Uredite informacije o uporabniku"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7471,7 +7511,7 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
+msgid "Purchase Order to allocate items against"
msgstr ""
#: plugin/base/barcodes/serializers.py:88
@@ -7494,6 +7534,34 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+msgid "Sales Order to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:147
+msgid "Sales order is not pending"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+msgid "Sales order shipment to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:167
+#, fuzzy
+#| msgid "This build output has already been completed"
+msgid "Shipment has already been delivered"
+msgstr "Ta sestava je že zaključena"
+
+#: plugin/base/barcodes/serializers.py:173
+#, fuzzy
+#| msgid "Stock quantity to allocate to build"
+msgid "Quantity to allocate"
+msgstr "Količina zaloge za prestavljanje za izgradnjo"
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8048,12 +8116,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr ""
@@ -8385,104 +8453,104 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr ""
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr ""
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10355,73 +10423,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr ""
@@ -10970,11 +11038,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13405,7 +13468,8 @@ msgstr ""
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
msgstr ""
@@ -13580,4 +13644,3 @@ msgstr ""
#: users/models.py:410
msgid "Permission to delete items"
msgstr ""
-
diff --git a/InvenTree/locale/sr/LC_MESSAGES/django.po b/InvenTree/locale/sr/LC_MESSAGES/django.po
index 40511be842eb..29333b9d4c0c 100644
--- a/InvenTree/locale/sr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/sr/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-12-14 22:19+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -543,127 +543,127 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr ""
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr ""
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr ""
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr ""
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr ""
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
msgid "Serbian"
msgstr ""
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr ""
-#: InvenTree/settings.py:860
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr ""
diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po
index d12d5ac1cc77..a80e63ae79c3 100644
--- a/InvenTree/locale/sv/LC_MESSAGES/django.po
+++ b/InvenTree/locale/sv/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:45\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
@@ -57,9 +57,9 @@ msgstr "Ange datum"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr "Saknad fil"
msgid "Missing external link"
msgstr "Extern länk saknas"
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr "Fil kommentar"
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr "Ogiltigt val"
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr "Namn"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -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:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr "Måste vara ett giltigt nummer"
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,7 +474,9 @@ msgstr "Välkommen till {current_site.name}"
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
msgstr ""
@@ -540,123 +542,127 @@ msgstr "URL för fjärrbildsfil"
msgid "Downloading images from remote URL is not enabled"
msgstr "Nedladdning av bilder från fjärr-URL är inte aktiverad"
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr "Tjeckiska"
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr "Danska"
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr "Tyska"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr "Grekiska"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr "Engelska"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr "Spanska"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr "Spanska (Mexikanska)"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr "Farsi / Persiska"
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr "Finska"
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr "Franska"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr "Hebreiska"
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr "Hindi"
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr "Ungerska"
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "Italienska"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "Japanska"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "Koreanska"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "Nederländska"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "Norska"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "Polska"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "Portugisiska"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr "Portugisiska (brasiliansk)"
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "Ryska"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr "Slovenska"
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "Svenska"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "Thailändska"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "Turkiska"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "Vietnamesiska"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr "Kinesiska (Förenklad)"
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr "Kinesiska (Traditionell)"
@@ -916,14 +922,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:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -991,8 +997,8 @@ msgid "Build Order Reference"
msgstr "Byggorderreferens"
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1022,10 +1028,10 @@ msgstr "Byggorder till vilken detta bygge är tilldelad"
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1043,7 +1049,7 @@ msgstr "Byggorder till vilken detta bygge är tilldelad"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1149,7 +1155,7 @@ msgstr "Datum för slutförande"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Måldatum för färdigställande. Byggandet kommer att förfallas efter detta datum."
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr "Slutförandedatum"
@@ -1244,7 +1250,7 @@ msgstr "Byggutgång matchar inte bygg order"
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1259,9 +1265,9 @@ msgstr ""
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1276,7 +1282,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1316,11 +1322,11 @@ msgstr "Byggobjekt måste ange en byggutgång, eftersom huvuddelen är markerad
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Tilldelad kvantitet ({q}) får inte överstiga tillgängligt lagersaldo ({a})"
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr "Lagerposten är överallokerad"
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr "Allokeringsmängden måste vara större än noll"
@@ -1429,8 +1435,8 @@ msgstr ""
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1466,7 +1472,7 @@ msgstr ""
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1680,8 +1686,8 @@ msgstr "Visa QR-kod"
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr ""
@@ -2364,7 +2370,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3403,7 +3409,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3868,7 +3874,7 @@ msgstr ""
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3879,7 +3885,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3939,7 +3945,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4062,7 +4068,7 @@ msgid "Delete image"
msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4564,7 +4570,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4650,15 +4656,15 @@ msgstr ""
msgid "received by"
msgstr ""
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr ""
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr ""
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr ""
@@ -4674,11 +4680,11 @@ msgstr ""
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr ""
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr ""
@@ -4749,8 +4755,8 @@ msgid "deleted"
msgstr ""
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr ""
@@ -4827,7 +4833,7 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
@@ -4876,77 +4882,77 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr ""
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr ""
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5490,12 +5496,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
@@ -5572,12 +5578,12 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5618,7 +5624,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr ""
@@ -5680,7 +5686,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5761,7 +5767,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr ""
@@ -5785,7 +5791,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5896,155 +5902,155 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6056,318 +6062,318 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr ""
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr ""
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr ""
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr ""
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr ""
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr ""
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr ""
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr ""
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr ""
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr ""
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr ""
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3820
+#: part/models.py:3824
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr ""
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7399,43 +7405,81 @@ msgstr "Ingen åtgärd specificerad"
msgid "No matching action found"
msgstr "Ingen matchande åtgärd hittades"
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+#, fuzzy
+#| msgid "No matching action found"
+msgid "Multiple matching line items found"
+msgstr "Ingen matchande åtgärd hittades"
+
+#: plugin/base/barcodes/api.py:503
+#, fuzzy
+#| msgid "No matching action found"
+msgid "No matching line item found"
+msgstr "Ingen matchande åtgärd hittades"
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+msgid "Barcode does not match an existing stock item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:563
+msgid "Stock item does not match line item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+#, fuzzy
+#| msgid "Stock quantity to allocate to build"
+msgid "Stock item allocated to sales order"
+msgstr "Lagersaldo att allokera för att bygga"
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "Edit User Information"
+msgid "Not enough information"
+msgstr "Redigera användarinformation"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7471,7 +7515,7 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
+msgid "Purchase Order to allocate items against"
msgstr ""
#: plugin/base/barcodes/serializers.py:88
@@ -7494,6 +7538,32 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+msgid "Sales Order to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:147
+msgid "Sales order is not pending"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+msgid "Sales order shipment to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:167
+msgid "Shipment has already been delivered"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:173
+#, fuzzy
+#| msgid "Stock quantity to allocate to build"
+msgid "Quantity to allocate"
+msgstr "Lagersaldo att allokera för att bygga"
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8048,12 +8118,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr ""
@@ -8385,104 +8455,104 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr ""
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr ""
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10355,73 +10425,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr ""
@@ -10970,11 +11040,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13405,7 +13470,8 @@ msgstr ""
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
msgstr ""
@@ -13580,4 +13646,3 @@ msgstr ""
#: users/models.py:410
msgid "Permission to delete items"
msgstr ""
-
diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po
index 252c5db4a53d..7baf76a9a5b3 100644
--- a/InvenTree/locale/th/LC_MESSAGES/django.po
+++ b/InvenTree/locale/th/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:46\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
@@ -57,9 +57,9 @@ msgstr "ป้อนวันที่"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr "ความเห็นของไฟล์"
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr ""
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr "ชื่อ"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -444,12 +444,12 @@ msgstr "เกิดข้อผิดพลาดที่เซิร์ฟเ
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:61 part/models.py:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr "ต้องเป็นตัวเลข"
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,7 +474,9 @@ msgstr ""
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
msgstr ""
@@ -540,123 +542,127 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr ""
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr ""
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr ""
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr ""
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr ""
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "ภาษาโปรตุเกส"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "ภาษารัสเซีย"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "ภาษาสวีเดน"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "ภาษาไทย"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "ภาษาเวียดนาม"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr ""
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr ""
@@ -916,14 +922,14 @@ msgstr "เกี่ยวกับ Inventree"
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -991,8 +997,8 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1022,10 +1028,10 @@ msgstr ""
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1043,7 +1049,7 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1149,7 +1155,7 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr ""
@@ -1244,7 +1250,7 @@ msgstr ""
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1259,9 +1265,9 @@ msgstr ""
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1276,7 +1282,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1316,11 +1322,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -1429,8 +1435,8 @@ msgstr ""
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1466,7 +1472,7 @@ msgstr ""
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1680,8 +1686,8 @@ msgstr ""
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr ""
@@ -2364,7 +2370,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3403,7 +3409,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3868,7 +3874,7 @@ msgstr ""
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3879,7 +3885,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3939,7 +3945,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4062,7 +4068,7 @@ msgid "Delete image"
msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4564,7 +4570,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4650,15 +4656,15 @@ msgstr ""
msgid "received by"
msgstr ""
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr ""
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr ""
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr ""
@@ -4674,11 +4680,11 @@ msgstr ""
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr ""
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr ""
@@ -4749,8 +4755,8 @@ msgid "deleted"
msgstr ""
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr ""
@@ -4827,7 +4833,7 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
@@ -4876,77 +4882,77 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr ""
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr ""
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5490,12 +5496,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
@@ -5572,12 +5578,12 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5618,7 +5624,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr ""
@@ -5680,7 +5686,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5761,7 +5767,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr ""
@@ -5785,7 +5791,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5896,155 +5902,155 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6056,318 +6062,318 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr ""
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr ""
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr ""
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr ""
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr ""
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr ""
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr ""
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr ""
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr ""
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr ""
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr ""
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3820
+#: part/models.py:3824
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr ""
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7399,43 +7405,75 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+msgid "Multiple matching line items found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:503
+msgid "No matching line item found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+msgid "Barcode does not match an existing stock item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:563
+msgid "Stock item does not match line item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+msgid "Stock item allocated to sales order"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "Edit User Information"
+msgid "Not enough information"
+msgstr "แก้ไขข้อมูลสมาชิก"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7471,7 +7509,7 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
+msgid "Purchase Order to allocate items against"
msgstr ""
#: plugin/base/barcodes/serializers.py:88
@@ -7494,6 +7532,30 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+msgid "Sales Order to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:147
+msgid "Sales order is not pending"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+msgid "Sales order shipment to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:167
+msgid "Shipment has already been delivered"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:173
+msgid "Quantity to allocate"
+msgstr ""
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8048,12 +8110,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr ""
@@ -8385,104 +8447,104 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr ""
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr ""
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10355,73 +10417,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr ""
@@ -10970,11 +11032,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13405,7 +13462,8 @@ msgstr ""
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
msgstr ""
@@ -13580,4 +13638,3 @@ msgstr ""
#: users/models.py:410
msgid "Permission to delete items"
msgstr ""
-
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po
index fc937123f968..0a91a3e4e0fd 100644
--- a/InvenTree/locale/tr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/tr/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:46\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
@@ -57,9 +57,9 @@ msgstr "Tarih giriniz"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr "Eksik dosya"
msgid "Missing external link"
msgstr "Bozuk dış bağlantı"
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr "Dosya yorumu"
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr "Geçersiz seçim"
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr "Adı"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -444,12 +444,12 @@ msgstr "Sunucu Hatası"
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:61 part/models.py:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr "Geçerli bir numara olmalı"
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,7 +474,9 @@ msgstr ""
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
msgstr ""
@@ -540,123 +542,127 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr "Çekçe"
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr "Danca"
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr "Almanca"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr "Yunanca"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr "İngilizce"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr "İspanyolca"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr "İspanyolca(Meksika)"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr "Farsça"
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr "Fince"
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr "Fransızca"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr "İbranice"
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr ""
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr "Macarca"
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "İtalyanca"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "Japonca"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "Korece"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "Flemenkçe"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "Norveççe"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "Polonyaca"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "Portekizce"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr "Portekizce (Brezilya)"
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "Rusça"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr "Slovakça"
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "İsveççe"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "Tay dili"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "Türkçe"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "Vietnamca"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr ""
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr ""
@@ -916,14 +922,14 @@ msgstr "InvenTree Hakkında"
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -991,8 +997,8 @@ msgid "Build Order Reference"
msgstr "Yapım İşi Emri Referansı"
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1022,10 +1028,10 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1043,7 +1049,7 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1149,7 +1155,7 @@ msgstr "Hedef tamamlama tarihi"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım işi gecikmiş olacak."
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr "Tamamlama tarihi"
@@ -1244,7 +1250,7 @@ msgstr "Yapım işi çıktısı, yapım işi emri ile eşleşmiyor"
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1259,9 +1265,9 @@ msgstr ""
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1276,7 +1282,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1316,11 +1322,11 @@ msgstr "Ana parça izlenebilir olarak işaretlendiğinden, yapım işi çıktıs
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr "Stok kalemi fazladan tahsis edilmiş"
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır"
@@ -1429,8 +1435,8 @@ msgstr ""
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1466,7 +1472,7 @@ msgstr ""
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1680,8 +1686,8 @@ msgstr ""
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr ""
@@ -2364,7 +2370,7 @@ msgstr "Kategori Paremetre Sablonu Kopyala"
msgid "Copy category parameter templates when creating a part"
msgstr "Parça oluştururken kategori parametre şablonlarını kopyala"
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3403,7 +3409,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3868,7 +3874,7 @@ msgstr "Parametre adı"
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3879,7 +3885,7 @@ msgid "Parameter value"
msgstr "Parametre değeri"
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3939,7 +3945,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4062,7 +4068,7 @@ msgid "Delete image"
msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4564,7 +4570,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4650,15 +4656,15 @@ msgstr ""
msgid "received by"
msgstr ""
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr ""
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr ""
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr ""
@@ -4674,11 +4680,11 @@ msgstr ""
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr ""
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr ""
@@ -4749,8 +4755,8 @@ msgid "deleted"
msgstr ""
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr ""
@@ -4827,7 +4833,7 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
@@ -4876,77 +4882,77 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Tahsis miktarı stok miktarını aşamaz"
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr "Seri numaralı stok kalemi için miktar bir olmalı"
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr ""
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr ""
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr "Stok tahsis miktarını girin"
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5490,12 +5496,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
@@ -5572,12 +5578,12 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5618,7 +5624,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr ""
@@ -5680,7 +5686,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5761,7 +5767,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr "Parça adı"
@@ -5785,7 +5791,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5896,155 +5902,155 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6056,318 +6062,318 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr ""
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr ""
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr ""
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
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:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr "Test Adı"
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr "Test Açıklaması"
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr "Gerekli"
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr "Testi geçmesi için bu gerekli mi?"
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr ""
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr "Parametre şablon adı benzersiz olmalıdır"
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr ""
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr "Parametre Şablonu"
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr ""
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr ""
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr ""
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr ""
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
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:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr "Çeşide İzin Ver"
-#: part/models.py:3820
+#: part/models.py:3824
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:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr ""
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7399,43 +7405,85 @@ msgstr "İşlem belirtilmedi"
msgid "No matching action found"
msgstr "Eşleşen eylem bulunamadı"
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr "Barkod verisi için eşleşme bulunamadı"
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr "Barkod verisi için eşleşme bulundu"
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+#, fuzzy
+#| msgid "No matching action found"
+msgid "Multiple matching line items found"
+msgstr "Eşleşen eylem bulunamadı"
+
+#: plugin/base/barcodes/api.py:503
+#, fuzzy
+#| msgid "No matching action found"
+msgid "No matching line item found"
+msgstr "Eşleşen eylem bulunamadı"
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+#, fuzzy
+#| msgid "Barcode does not match a valid location"
+msgid "Barcode does not match an existing stock item"
+msgstr "Barkod geçerli bir konumla eşleşmiyor"
+
+#: plugin/base/barcodes/api.py:563
+#, fuzzy
+#| msgid "Quantity does not match serial numbers"
+msgid "Stock item does not match line item"
+msgstr "Miktar seri numaları ile eşleşmiyor"
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+#, fuzzy
+#| msgid "Stock quantity to allocate to build"
+msgid "Stock item allocated to sales order"
+msgstr "Yapım işi için tahsis edilen stok miktarı"
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "copy version information"
+msgid "Not enough information"
+msgstr "sürüm bilgisini kopyala"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7471,7 +7519,7 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
+msgid "Purchase Order to allocate items against"
msgstr ""
#: plugin/base/barcodes/serializers.py:88
@@ -7494,6 +7542,32 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+msgid "Sales Order to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:147
+msgid "Sales order is not pending"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+msgid "Sales order shipment to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:167
+msgid "Shipment has already been delivered"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:173
+#, fuzzy
+#| msgid "Stock quantity to allocate to build"
+msgid "Quantity to allocate"
+msgstr "Yapım işi için tahsis edilen stok miktarı"
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8048,12 +8122,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr ""
@@ -8385,104 +8459,104 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr "Seri numaraları tam sayı listesi olmalı"
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr "Miktar seri numaları ile eşleşmiyor"
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr "Seri numaraları zaten mevcut"
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Stok kalemi stokta olmadığı için taşınamaz"
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr ""
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr ""
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10355,73 +10429,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr "Stok kalemi zaten bu konumda"
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr "Konuma Kaydet"
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr "Barkod geçerli bir konumla eşleşmiyor"
@@ -10970,11 +11044,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13405,7 +13474,8 @@ msgstr ""
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
msgstr ""
@@ -13580,4 +13650,3 @@ msgstr "Parçaları düzenleme izni"
#: users/models.py:410
msgid "Permission to delete items"
msgstr "Parçaları silme izni"
-
diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po
index 942bcd0b4ef6..b7949bc652db 100644
--- a/InvenTree/locale/vi/LC_MESSAGES/django.po
+++ b/InvenTree/locale/vi/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-11 04:59+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-12 03:57\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
@@ -59,7 +59,7 @@ msgstr "Nhập ngày"
#: order/templates/order/so_sidebar.html:17 part/admin.py:40
#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr "Tập tin bị thiếu"
msgid "Missing external link"
msgstr "Thiếu liên kết bên ngoài"
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -474,9 +474,13 @@ msgstr "Chào mừng đến với {current_site.name}"
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
-msgstr "Tài khoản của bạn đã được tạo.\n\n"
+msgstr ""
+"Tài khoản của bạn đã được tạo.\n"
+"\n"
"Xin hãy sử dụng chức năng quên mật khẩu để truy cập (tại https://{domain})."
#: InvenTree/serializers.py:519
@@ -541,123 +545,127 @@ msgstr "URL của tệp hình ảnh bên ngoài"
msgid "Downloading images from remote URL is not enabled"
msgstr "Chức năng tải hình ảnh từ URL bên ngoài không được bật"
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr "Tiếng Bulgaria"
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr "Tiếng Séc"
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr "Tiếng Đan Mạch"
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr "Tiếng Đức"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr "Tiếng Hy Lạp"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr "Tiếng Anh"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr "Tiếng Tây Ban Nha"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr "Tiếng Tây Ban Nha (Mê-hi-cô)"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr "Tiếng Ba Tư"
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr "Tiếng Phần Lan"
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr "Tiếng Pháp"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr "Tiếng Do Thái"
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr "Tiếng Ấn Độ"
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr "Tiếng Hung-ga-ri"
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "Tiếng Ý"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "Tiếng Nhật"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "Tiếng Hàn"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "Tiếng Hà Lan"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "Tiếng Na Uy"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "Tiếng Ba Lan"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "Tiếng Bồ Đào Nha"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr "Tiếng Bồ Đào Nha (Brazil)"
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "Tiếng Nga"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr "Tiếng Slô-ven-ni-a"
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "Tiếng Thụy Điển"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "Tiếng Thái"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "Tiếng Thổ Nhĩ Kỳ"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "Tiếng Việt"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr "Tiếng Trung (Giản thể)"
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr "Tiếng Trung (Phồn thể)"
@@ -992,7 +1000,7 @@ msgid "Build Order Reference"
msgstr "Tham chiếu đơn đặt bản dựng"
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
#: part/models.py:3799 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
@@ -1044,7 +1052,7 @@ msgstr "Đơn đặt bản dựng với bản dựng này đã được phân b
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1150,7 +1158,7 @@ msgstr "Ngày hoàn thành mục tiêu"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Ngày mục tiêu để hoàn thành bản dựng. Bản dựng sẽ bị quá hạn sau ngày này."
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr "Ngày hoàn thành"
@@ -1245,7 +1253,7 @@ msgstr "Đầu ra bản dựng không phù hợp với đơn đặt bản dựng
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr "Số lượng phải lớn hơn 0"
@@ -1260,7 +1268,7 @@ msgstr "Dựng đối tượng"
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
@@ -1277,7 +1285,7 @@ msgstr "Dựng đối tượng"
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1317,11 +1325,11 @@ msgstr "Xây dựng mục phải xác định đầu ra, bởi vì sản phẩm
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Số lượng được phân bổ ({q}) không thể vượt quá số lượng có trong kho ({a})"
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr "Kho hàng đã bị phân bổ quá đà"
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr "Số lượng phân bổ phải lớn hơn 0"
@@ -1430,8 +1438,8 @@ msgstr "Danh sách đầu ra bản dựng phải được cung cấp"
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1467,7 +1475,7 @@ msgstr "Vị trí cho đầu ra bản dựng hoàn thiện"
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1681,8 +1689,8 @@ msgstr "Hiển thị mã QR"
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr "Gỡ mã vạch"
@@ -3404,7 +3412,7 @@ msgid "Price break quantity"
msgstr "Số lượng giá phá vỡ"
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3869,7 +3877,7 @@ msgstr "Tên tham số"
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -4063,7 +4071,7 @@ msgid "Delete image"
msgstr "Xóa ảnh"
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4565,7 +4573,7 @@ msgstr "Không tìm thấy đơn đặt mua phù hợp"
msgid "Purchase Order"
msgstr "Đơn hàng"
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4651,15 +4659,15 @@ msgstr "Mã tham chiếu đơn đặt nhà cung cấp"
msgid "received by"
msgstr "nhận bởi"
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr "Ngày phát hành"
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr "Ngày đặt hàng đã phát hành"
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr "Ngày đặt hàng đã được hoàn thiện"
@@ -4675,11 +4683,11 @@ msgstr "Số lượng phải là số dương"
msgid "Company to which the items are being sold"
msgstr "Doanh nghiệp từ những hàng hóa đang được bán"
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr "Tham chiếu khách hàng "
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr "Mã tham chiếu đơn đặt của khách hàng"
@@ -4750,8 +4758,8 @@ msgid "deleted"
msgstr "đã bị xóa"
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr "Đặt hàng"
@@ -4828,7 +4836,7 @@ msgstr "Kiểm tra bởi"
msgid "User who checked this shipment"
msgstr "Người dùng đã kiểm tra vận chuyển này"
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr "Vận chuyển"
@@ -4877,77 +4885,77 @@ msgstr "Không thể phân bổ hàng hóa vào một dòng mà không có sản
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Số lượng phân bổ không thể vượt quá số lượng của kho"
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr "Số lượng phải là 1 cho hàng hóa sêri"
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr "Đơn bán hàng không phù hợp với vận đơn"
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr "Vận đơn không phù hợp với đơn bán hàng"
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr "Dòng"
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr "Tham chiếu vận đơn của đơn hàng bán"
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr "Hàng hóa"
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr "Chọn hàng trong kho để phân bổ"
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr "Nhập số lượng phân kho"
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr "Tham chiếu đơn hàng trả lại"
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr "Công ty có hàng hóa sẽ được trả lại"
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr "Trạng thái đơn hàng trả lại"
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr "Chỉ hàng hóa thêo sêri mới có thể được gán vào đơn hàng trả lại"
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr "Chọn hàng hóa để trả lại từ khách hàng"
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr "Ngày nhận được"
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr "Ngày mà hàng hóa trả lại đã được nhận"
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr "Kết quả"
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr "Kết quả cho hàng hóa dòng này"
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr "Chi phí gắn với hàng trả lại hoặc sửa chữa cho dòng hàng hóa này"
@@ -7400,43 +7408,85 @@ msgstr "Chưa chỉ ra hành động cụ thể"
msgid "No matching action found"
msgstr "Không tìm thấy chức năng phù hợp"
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr "Không tìm thấy dữ liệu mã vạch phù hợp"
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr "Đã tìm thấy dữ liệu mã vạch phù hợp"
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr "Mã vạch phù hợp với hàng hóa hiện có"
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr "Không tìm thấy thông tin sản phẩm phù hợp"
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr "Không tìm thấy sản phẩm nhà cung cấp phù hợp"
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr "Tìm thấy nhiều sản phẩm nhà cung cấp phù hợp"
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr "Sản phẩm nhà cung cấp phù hợp"
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr "Hàng hóa này đã được nhận"
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr "Không phù hợp với mã vạch nhà cung cấp"
+#: plugin/base/barcodes/api.py:498
+#, fuzzy
+#| msgid "Multiple matching supplier parts found"
+msgid "Multiple matching line items found"
+msgstr "Tìm thấy nhiều sản phẩm nhà cung cấp phù hợp"
+
+#: plugin/base/barcodes/api.py:503
+#, fuzzy
+#| msgid "No matching line items"
+msgid "No matching line item found"
+msgstr "Không thấy hàng hóa phù hợp"
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+#, fuzzy
+#| msgid "Barcode does not match valid stock item"
+msgid "Barcode does not match an existing stock item"
+msgstr "Mã vạch không khớp với mặt hàng hợp lệ"
+
+#: plugin/base/barcodes/api.py:563
+#, fuzzy
+#| msgid "Selected stock item does not match BOM line"
+msgid "Stock item does not match line item"
+msgstr "Hàng trong kho đã chọn không phù hợp với đường BOM"
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr "Kho không đủ hạn mức khả dụng"
+
+#: plugin/base/barcodes/api.py:599
+#, fuzzy
+#| msgid "Stock item assigned to sales order"
+msgid "Stock item allocated to sales order"
+msgstr "Mặt hàng đã được chỉ định vào đơn hàng bán"
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "No user information"
+msgid "Not enough information"
+msgstr "Không có thông tin người dùng"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr "Tìm thấy nhiều sản phẩm nhà cung cấp cho mã vạch"
@@ -7472,7 +7522,9 @@ msgid "Scanned barcode data"
msgstr "Thông tin mã vạch đã quét"
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
+#, fuzzy
+#| msgid "PurchaseOrder to allocate items against"
+msgid "Purchase Order to allocate items against"
msgstr "Đơn đặt mua để chỉ định hàng hóa"
#: plugin/base/barcodes/serializers.py:88
@@ -7495,6 +7547,42 @@ msgstr "Địa điểm để nhận hàng hóa vào bên trong"
msgid "Cannot select a structural location"
msgstr "Không thể chọn một địa điểm có cấu trúc"
+#: plugin/base/barcodes/serializers.py:140
+#, fuzzy
+#| msgid "PurchaseOrder to allocate items against"
+msgid "Sales Order to allocate items against"
+msgstr "Đơn đặt mua để chỉ định hàng hóa"
+
+#: plugin/base/barcodes/serializers.py:147
+#, fuzzy
+#| msgid "Purchase order is not pending"
+msgid "Sales order is not pending"
+msgstr "Đơn đặt mua không chờ xử lý"
+
+#: plugin/base/barcodes/serializers.py:154
+#, fuzzy
+#| msgid "PurchaseOrder to allocate items against"
+msgid "Sales order line item to allocate items against"
+msgstr "Đơn đặt mua để chỉ định hàng hóa"
+
+#: plugin/base/barcodes/serializers.py:160
+#, fuzzy
+#| msgid "PurchaseOrder to allocate items against"
+msgid "Sales order shipment to allocate items against"
+msgstr "Đơn đặt mua để chỉ định hàng hóa"
+
+#: plugin/base/barcodes/serializers.py:167
+#, fuzzy
+#| msgid "Shipment has already been shipped"
+msgid "Shipment has already been delivered"
+msgstr "Vận đơn đã được chuyển đi"
+
+#: plugin/base/barcodes/serializers.py:173
+#, fuzzy
+#| msgid "Quantity to Install"
+msgid "Quantity to allocate"
+msgstr "Số lượng để cài đặt"
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr "In nhãn thất bại"
@@ -8049,12 +8137,12 @@ msgid "Test Results"
msgstr "Kết quả kiểm tra"
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr "Thử nghiệm"
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr "Kết quả"
@@ -8386,104 +8474,104 @@ msgstr "Giá mua riêng lẻ tại thời điểm mua"
msgid "Converted to part"
msgstr "Đã chuyển đổi sang sản phẩm"
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr "Chưa đặt sản phẩm thành có thể theo dõi"
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr "Số lượng phải là số nguyên"
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr "Số lượng không thể vượt quá số lượng trong kho đang có ({self.quantity})"
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr "Số sêri phải là một danh sách dãy số nguyên"
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr "Số lượng không khớp với số sêri"
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr "Số sêri đã tồn tại"
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr "Hàng trong kho đã được gán vào đơn hàng bán"
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr "Hàng trong kho đã được cài đặt vào hàng hóa khác"
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr "Hàng trong kho chứa hàng hóa khác"
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr "Hàng trong kho đã được gắn với một khách hàng"
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr "Hàng trong kho hiện đang sản xuất"
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr "Không thể hợp nhất kho nối tiếp"
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr "Mặt hàng trùng lặp"
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr "Mặt hàng phải tham chiếu đến sản phẩm tương tự"
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr "Mặt hàng phải tham chiếu đến sản phẩm nhà cung cấp tương tự"
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr "Mã trạng thái kho phải phù hợp"
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Không thể xóa mặt hàng không ở trong kho"
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr "Ghi chú đầu vào"
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr "Phải cung cấp giá trị cho kiểm thử này"
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr "Phải tải liên đính kèm cho kiểm thử này"
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr "Tên kiểm thử"
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr "Kết quả kiểm thử"
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr "Giá trị đầu ra kiểm thử"
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr "Đính kèm kết quả kiểm thử"
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr "Ghi chú kiểm thử"
@@ -10356,73 +10444,73 @@ msgstr "Quét dữ liệu mã vạch"
msgid "Scan Barcode"
msgstr "Quét mã vạch"
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr "Thiếu URL trong dữ liệu trả lời"
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr "Điều này sẽ gỡ liên kết đến mã vạch đã được liên kết"
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr "Hủy liên kết"
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr "Xóa mặt hàng"
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr "Quét mặt hàng vào trong vị trí"
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr "Quét mã vạch mặt hàng để nhập vào vị trí này"
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr "Đăng ký vào"
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr "Không cung cấp mã vạch"
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr "Đã quét mặt hàng"
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr "Đã quét mặt hàng vào vị trí này"
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr "Đã thêm mặt hàng"
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr "Mã vạch không khớp với mặt hàng hợp lệ"
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr "Quét bộ chứa kho vào trong vị trí"
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr "Quét mã vạch bộ chứa kho để nhập vào vị trí này"
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr "Mã vạch không khớp với vị trí kho hợp lệ"
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr "Kiểm tra vào vị trí"
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr "Mã vạch không khớp với vị trí hợp lệ"
@@ -10971,11 +11059,6 @@ msgstr "Sản phẩm theo dõi được"
msgid "Unit Quantity"
msgstr "Số lượng đơn vị"
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr "Kho không đủ hạn mức khả dụng"
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13406,7 +13489,8 @@ msgstr "Nhà cung cấp SSO đã chọn không hợp lệ hoặc đã không đ
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
msgstr "Bạn chuân bị sử dụng tài khoản %(provider_name)s của bạn để đăng nhập%(site_name)s
Vì là bước cuối cùng, xin hãy hoàn thiện biểu mẫu dưới đây:"
@@ -13581,4 +13665,3 @@ msgstr "Quyển để sửa mục"
#: users/models.py:410
msgid "Permission to delete items"
msgstr "Quyền để xóa mục"
-
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index 5286175b2660..3e4edaba142a 100644
--- a/InvenTree/locale/zh/LC_MESSAGES/django.po
+++ b/InvenTree/locale/zh/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-10 20:51+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-12-11 03:46\n"
"Last-Translator: \n"
"Language-Team: Chinese Traditional\n"
@@ -57,9 +57,9 @@ msgstr "輸入日期"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -254,7 +254,7 @@ msgstr "缺少檔案"
msgid "Missing external link"
msgstr "缺少外部連結"
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -297,8 +297,8 @@ msgstr "檔案註解"
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -344,7 +344,7 @@ msgstr "無效的選項"
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -369,7 +369,7 @@ msgstr "名稱"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -444,12 +444,12 @@ msgstr "伺服器錯誤"
msgid "An error has been logged by the server."
msgstr "伺服器紀錄了一個錯誤。"
-#: InvenTree/serializers.py:61 part/models.py:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr "必須是有效的數字"
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -474,7 +474,9 @@ msgstr ""
#: InvenTree/serializers.py:455
#, python-brace-format
-msgid "Your account has been created.\n\n"
+msgid ""
+"Your account has been created.\n"
+"\n"
"Please use the password reset function to get access (at https://{domain})."
msgstr ""
@@ -540,123 +542,127 @@ msgstr "遠端圖片的URL"
msgid "Downloading images from remote URL is not enabled"
msgstr "尚未啟用從遠端URL下載圖片"
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr "捷克文"
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr "丹麥文"
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr "德文"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr "希臘文"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr "英文"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr "西班牙文"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr "西班牙文(墨西哥)"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr "波斯語"
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr "芬蘭文"
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr "法文"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr "希伯來文"
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr ""
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr "匈牙利文"
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "義大利文"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "日文"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "韓文"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "荷蘭文"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "挪威文"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "波蘭文"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "葡萄牙文"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr "葡萄牙文(巴西)"
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "俄文"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr "斯洛維尼亞文"
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "瑞典文"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "泰文"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "土耳其文"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "越南文"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr "中文(简体)"
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr "中文(繁體)"
@@ -916,14 +922,14 @@ msgstr "關於InvenTree"
msgid "Build must be cancelled before it can be deleted"
msgstr "工單必須被取消才能被刪除"
-#: build/api.py:281 part/models.py:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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
@@ -991,8 +997,8 @@ msgid "Build Order Reference"
msgstr "生產工單代號"
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1022,10 +1028,10 @@ msgstr "這張生產工單對應的上層生產工單"
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1043,7 +1049,7 @@ msgstr "這張生產工單對應的上層生產工單"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1149,7 +1155,7 @@ msgstr "目標完成日期"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "生產的預計完成日期。若超過此日期則工單會逾期。"
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr "完成日期"
@@ -1244,7 +1250,7 @@ msgstr "生產品項與生產工單不符"
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr "數量必須大於零"
@@ -1259,9 +1265,9 @@ msgstr ""
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1276,7 +1282,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1316,11 +1322,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "分配的數量({q})不能超過可用的庫存數量({a})"
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr "庫存品項超額分配"
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr "分配的數量必須大於零"
@@ -1429,8 +1435,8 @@ msgstr "必須提供產出清單"
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1466,7 +1472,7 @@ msgstr ""
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1680,8 +1686,8 @@ msgstr ""
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr ""
@@ -2364,7 +2370,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3403,7 +3409,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3868,7 +3874,7 @@ msgstr ""
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3879,7 +3885,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3939,7 +3945,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4062,7 +4068,7 @@ msgid "Delete image"
msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4564,7 +4570,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4650,15 +4656,15 @@ msgstr ""
msgid "received by"
msgstr ""
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr ""
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr ""
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr ""
@@ -4674,11 +4680,11 @@ msgstr ""
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr ""
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr ""
@@ -4749,8 +4755,8 @@ msgid "deleted"
msgstr ""
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr ""
@@ -4827,7 +4833,7 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
@@ -4876,77 +4882,77 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr ""
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr ""
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5490,12 +5496,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
@@ -5572,12 +5578,12 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5618,7 +5624,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr ""
@@ -5680,7 +5686,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5761,7 +5767,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr ""
@@ -5785,7 +5791,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5896,155 +5902,155 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6056,318 +6062,318 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr ""
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr ""
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr ""
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr ""
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr ""
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr ""
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr ""
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr ""
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr ""
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr ""
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr ""
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3820
+#: part/models.py:3824
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr ""
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7399,43 +7405,79 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+msgid "Multiple matching line items found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:503
+msgid "No matching line item found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+msgid "Barcode does not match an existing stock item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:563
+#, fuzzy
+#| msgid "Selected stock item does not match BOM line"
+msgid "Stock item does not match line item"
+msgstr "選擇的庫存品項和BOM的項目不符"
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+#, fuzzy
+#| msgid "Stock quantity to allocate to build"
+msgid "Stock item allocated to sales order"
+msgstr "要分配的庫存數量"
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "Edit User Information"
+msgid "Not enough information"
+msgstr "編輯使用者資訊"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7471,7 +7513,7 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
+msgid "Purchase Order to allocate items against"
msgstr ""
#: plugin/base/barcodes/serializers.py:88
@@ -7494,6 +7536,34 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+msgid "Sales Order to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:147
+msgid "Sales order is not pending"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+msgid "Sales order shipment to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:167
+#, fuzzy
+#| msgid "This build output has already been completed"
+msgid "Shipment has already been delivered"
+msgstr "此筆產出已完成"
+
+#: plugin/base/barcodes/serializers.py:173
+#, fuzzy
+#| msgid "Stock quantity to allocate to build"
+msgid "Quantity to allocate"
+msgstr "要分配的庫存數量"
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8048,12 +8118,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr ""
@@ -8385,104 +8455,104 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr ""
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr ""
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10355,73 +10425,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr ""
@@ -10970,11 +11040,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
@@ -13405,7 +13470,8 @@ msgstr ""
#: templates/socialaccount/signup.html:10
#, python-format
-msgid "You are about to use your %(provider_name)s account to login to\n"
+msgid ""
+"You are about to use your %(provider_name)s account to login to\n"
"%(site_name)s.
As a final step, please complete the following form:"
msgstr ""
@@ -13580,4 +13646,3 @@ msgstr ""
#: users/models.py:410
msgid "Permission to delete items"
msgstr ""
-
diff --git a/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po b/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po
index 9e1d5a4da488..e2e6bfbd779d 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-12-10 22:58+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: 2023-02-28 22:38\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
@@ -62,9 +62,9 @@ msgstr "输入日期"
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -264,7 +264,7 @@ msgstr "缺少文件"
msgid "Missing external link"
msgstr "缺少外部链接"
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -307,8 +307,8 @@ msgstr "文件注释"
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -354,7 +354,7 @@ msgstr "选择无效"
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -379,7 +379,7 @@ msgstr "名称"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -456,12 +456,12 @@ msgstr "服务器错误"
msgid "An error has been logged by the server."
msgstr "服务器记录了一个错误。"
-#: InvenTree/serializers.py:61 part/models.py:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr "必须是有效数字"
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -556,127 +556,131 @@ msgstr "远程图像文件的 URL"
msgid "Downloading images from remote URL is not enabled"
msgstr "未启用从远程 URL下载图像"
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
#, fuzzy
#| msgid "Hungarian"
msgid "Bulgarian"
msgstr "匈牙利语"
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr "捷克语"
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr "丹麦语"
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr "德语"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr "希腊语"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr "英语"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr "西班牙语"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr "西班牙语(墨西哥)"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr "波斯语"
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
#, fuzzy
#| msgid "Danish"
msgid "Finnish"
msgstr "丹麦语"
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr "法语"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr "希伯来语"
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr ""
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr "匈牙利语"
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr "意大利语"
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr "日语"
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr "韩语"
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr "荷兰语"
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr "挪威语"
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr "波兰语"
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr "葡萄牙语"
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr "葡萄牙语 (巴西)"
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr "俄语"
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr "斯洛文尼亚"
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr "瑞典语"
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr "泰语"
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr "土耳其语"
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr "越南语"
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr ""
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr ""
@@ -954,14 +958,14 @@ msgstr "关于 InventTree"
msgid "Build must be cancelled before it can be deleted"
msgstr "在删除前必须取消生产"
-#: build/api.py:281 part/models.py:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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,8 +1035,8 @@ msgid "Build Order Reference"
msgstr "相关生产订单"
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1064,10 +1068,10 @@ msgstr "此次生产匹配的订单"
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1085,7 +1089,7 @@ msgstr "此次生产匹配的订单"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1191,7 +1195,7 @@ msgstr "预计完成日期"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "生产完成的目标日期。生产将在此日期之后逾期。"
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr "完成日期:"
@@ -1290,7 +1294,7 @@ msgstr "生产产出与订单不匹配"
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr "数量必须大于0"
@@ -1309,9 +1313,9 @@ msgstr "生产备注"
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1326,7 +1330,7 @@ msgstr "生产备注"
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1368,11 +1372,11 @@ msgstr "生产项必须指定生产产出,因为主部件已经被标记为可
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "分配数量 ({q}) 不得超过可用库存数量 ({a})"
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr "库存物品分配过度!"
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr "分配数量必须大于0"
@@ -1483,8 +1487,8 @@ msgstr "必须提供生产产出列表"
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1526,7 +1530,7 @@ msgstr "已完成生产产出的仓储地点"
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1746,8 +1750,8 @@ msgstr ""
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr ""
@@ -2457,7 +2461,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3526,7 +3530,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -4021,7 +4025,7 @@ msgstr "参数名称"
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -4032,7 +4036,7 @@ msgid "Parameter value"
msgstr "参数值"
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -4094,7 +4098,7 @@ msgid "Supplier part description"
msgstr "供应商商品描述"
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4219,7 +4223,7 @@ msgid "Delete image"
msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4743,7 +4747,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4845,15 +4849,15 @@ msgstr ""
msgid "received by"
msgstr ""
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr ""
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr ""
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr ""
@@ -4869,11 +4873,11 @@ msgstr "数量必须大于0"
msgid "Company to which the items are being sold"
msgstr "向其出售该商品的公司"
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr ""
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr ""
@@ -4948,8 +4952,8 @@ msgid "deleted"
msgstr ""
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr ""
@@ -5026,7 +5030,7 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
@@ -5075,83 +5079,83 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr ""
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr ""
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1773
+#: order/models.py:1782
#, fuzzy
#| msgid "Build Order Reference"
msgid "Return Order reference"
msgstr "相关生产订单"
-#: order/models.py:1787
+#: order/models.py:1796
#, fuzzy
#| msgid "Company from which the items are being ordered"
msgid "Company from which items are being returned"
msgstr "订购该商品的公司"
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
#, fuzzy
#| msgid "Returned from customer"
msgid "Select item to return from customer"
msgstr "从客户退货"
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5725,12 +5729,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr "商品ID"
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
@@ -5809,12 +5813,12 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5855,7 +5859,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr ""
@@ -5917,7 +5921,7 @@ msgstr "可用库存"
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "商品类别"
@@ -5999,7 +6003,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr "商品名称"
@@ -6025,7 +6029,7 @@ msgstr "描述 (可选)"
msgid "Part keywords to improve visibility in search results"
msgstr "提高搜索结果可见性的关键字"
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -6138,155 +6142,155 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6298,324 +6302,324 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr ""
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr ""
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr ""
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr ""
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr ""
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr ""
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
#, fuzzy
#| msgid "Key string must be unique"
msgid "Choices must be unique"
msgstr "关键字必须是唯一的"
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
#, fuzzy
#| msgid "Invalid choice for parent build"
msgid "Invalid choice for parameter value"
msgstr "上级生产选项无效"
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr ""
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr "参数模板"
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr "默认值"
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr ""
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr "BOM项"
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr ""
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr ""
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3808
+#: part/models.py:3812
#, fuzzy
#| msgid "Some stock items have been overallocated"
msgid "This BOM item has been validated"
msgstr "一些库存项已被过度分配"
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3820
+#: part/models.py:3824
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr ""
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7675,55 +7679,95 @@ msgstr "未指定操作"
msgid "No matching action found"
msgstr "未找到指定操作"
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr "未找到匹配条形码数据"
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr "找到匹配条形码数据"
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
#, fuzzy
#| msgid "No matching action found"
msgid "No matching part data found"
msgstr "未找到指定操作"
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
#, fuzzy
#| msgid "No supplier parts found"
msgid "No matching supplier parts found"
msgstr "未找到供应商商品"
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
#, fuzzy
#| msgid "No supplier parts found"
msgid "Multiple matching supplier parts found"
msgstr "未找到供应商商品"
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
#, fuzzy
#| msgid "Delete supplier part"
msgid "Matched supplier part"
msgstr "删除供应商商品"
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
#, fuzzy
#| msgid "This build output has already been completed"
msgid "Item has already been received"
msgstr "此生产产出已经完成"
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
#, fuzzy
#| msgid "No match found for barcode data"
msgid "No match for supplier barcode"
msgstr "未找到匹配条形码数据"
+#: plugin/base/barcodes/api.py:498
+#, fuzzy
+#| msgid "No supplier parts found"
+msgid "Multiple matching line items found"
+msgstr "未找到供应商商品"
+
+#: plugin/base/barcodes/api.py:503
+#, fuzzy
+#| msgid "No matching action found"
+msgid "No matching line item found"
+msgstr "未找到指定操作"
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+msgid "Barcode does not match an existing stock item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:563
+#, fuzzy
+#| msgid "Selected stock item not found in BOM"
+msgid "Stock item does not match line item"
+msgstr "在BOM中找不到选定的库存项"
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+#, fuzzy
+#| msgid "Stock quantity to allocate to build"
+msgid "Stock item allocated to sales order"
+msgstr "分配到生产的数量"
+
+#: plugin/base/barcodes/api.py:603
+#, fuzzy
+#| msgid "No user information"
+msgid "Not enough information"
+msgstr "没有用户信息"
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7765,7 +7809,7 @@ msgstr "扫描条形码"
#: plugin/base/barcodes/serializers.py:81
#, fuzzy
#| msgid "Purchase Order Settings"
-msgid "PurchaseOrder to allocate items against"
+msgid "Purchase Order to allocate items against"
msgstr "采购订单设置"
#: plugin/base/barcodes/serializers.py:88
@@ -7798,6 +7842,42 @@ msgstr "未指定仓储地点"
msgid "Cannot select a structural location"
msgstr "新建仓储地点"
+#: plugin/base/barcodes/serializers.py:140
+#, fuzzy
+#| msgid "Purchase Order Settings"
+msgid "Sales Order to allocate items against"
+msgstr "采购订单设置"
+
+#: plugin/base/barcodes/serializers.py:147
+#, fuzzy
+#| msgid "Purchase Order Settings"
+msgid "Sales order is not pending"
+msgstr "采购订单设置"
+
+#: plugin/base/barcodes/serializers.py:154
+#, fuzzy
+#| msgid "Purchase Order Settings"
+msgid "Sales order line item to allocate items against"
+msgstr "采购订单设置"
+
+#: plugin/base/barcodes/serializers.py:160
+#, fuzzy
+#| msgid "Purchase Order Settings"
+msgid "Sales order shipment to allocate items against"
+msgstr "采购订单设置"
+
+#: plugin/base/barcodes/serializers.py:167
+#, fuzzy
+#| msgid "This build output has already been completed"
+msgid "Shipment has already been delivered"
+msgstr "此生产产出已经完成"
+
+#: plugin/base/barcodes/serializers.py:173
+#, fuzzy
+#| msgid "Stock quantity to allocate to build"
+msgid "Quantity to allocate"
+msgstr "分配到生产的数量"
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8389,12 +8469,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr ""
@@ -8749,105 +8829,105 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1423
+#: stock/models.py:1429
#, fuzzy, python-brace-format
#| msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr "分配数量 ({q}) 不得超过可用库存数量 ({a})"
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr "序列号已存在"
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr ""
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr ""
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10796,73 +10876,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr "扫描条形码"
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr ""
@@ -11457,11 +11537,6 @@ msgstr "可追溯商品"
msgid "Unit Quantity"
msgstr "数量"
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
diff --git a/InvenTree/locale/zh_hant/LC_MESSAGES/django.po b/InvenTree/locale/zh_hant/LC_MESSAGES/django.po
index ebf582b419fa..590ebab10856 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-12-10 22:58+0000\n"
+"POT-Creation-Date: 2023-12-16 10:46+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -58,9 +58,9 @@ msgstr ""
#: order/models.py:1138 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:40
-#: part/models.py:2999 part/templates/part/part_sidebar.html:63
+#: part/models.py:3003 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/admin.py:139 stock/models.py:2223 stock/models.py:2331
#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674
#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157
#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25
@@ -255,7 +255,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:475 stock/models.py:2319
+#: InvenTree/models.py:475 stock/models.py:2325
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
@@ -298,8 +298,8 @@ msgstr ""
#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344
#: common/models.py:2345 common/models.py:2557 common/models.py:2558
-#: common/models.py:2814 common/models.py:2815 part/models.py:3007
-#: part/models.py:3092 part/models.py:3171 part/models.py:3191
+#: common/models.py:2814 common/models.py:2815 part/models.py:3011
+#: part/models.py:3096 part/models.py:3175 part/models.py:3195
#: 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
@@ -345,7 +345,7 @@ msgstr ""
#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543
#: common/models.py:2989 company/models.py:525 label/models.py:116
-#: part/models.py:783 part/models.py:3389 plugin/models.py:42
+#: part/models.py:783 part/models.py:3393 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
@@ -370,7 +370,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 label/models.py:123
#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272
-#: part/models.py:805 part/models.py:3405 part/templates/part/category.html:82
+#: part/models.py:805 part/models.py:3409 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
@@ -445,12 +445,12 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:61 part/models.py:3894
+#: InvenTree/serializers.py:61 part/models.py:3898
msgid "Must be a valid number"
msgstr ""
#: InvenTree/serializers.py:90 company/models.py:151
-#: company/templates/company/company_base.html:106 part/models.py:2834
+#: company/templates/company/company_base.html:106 part/models.py:2838
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -543,123 +543,127 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:832
msgid "Bulgarian"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:833
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:834
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:835
msgid "German"
msgstr ""
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:836
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:837
msgid "English"
msgstr ""
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:838
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:839
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:840
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:841
msgid "Finnish"
msgstr ""
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:842
msgid "French"
msgstr ""
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:843
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:844
msgid "Hindi"
msgstr ""
-#: InvenTree/settings.py:843
+#: InvenTree/settings.py:845
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:844
+#: InvenTree/settings.py:846
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:845
+#: InvenTree/settings.py:847
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:846
+#: InvenTree/settings.py:848
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:847
+#: InvenTree/settings.py:849
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:848
+#: InvenTree/settings.py:850
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:849
+#: InvenTree/settings.py:851
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:850
+#: InvenTree/settings.py:852
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:851
+#: InvenTree/settings.py:853
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:852
+#: InvenTree/settings.py:854
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:853
+#: InvenTree/settings.py:855
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:854
+#: InvenTree/settings.py:856
+msgid "Serbian"
+msgstr ""
+
+#: InvenTree/settings.py:857
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:855
+#: InvenTree/settings.py:858
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:856
+#: InvenTree/settings.py:859
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:857
+#: InvenTree/settings.py:860
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:858
+#: InvenTree/settings.py:861
msgid "Chinese (Simplified)"
msgstr ""
-#: InvenTree/settings.py:859
+#: InvenTree/settings.py:862
msgid "Chinese (Traditional)"
msgstr ""
@@ -919,14 +923,14 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3786 templates/js/translated/bom.js:997
+#: build/api.py:281 part/models.py:3790 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:3780 part/templates/part/upload_bom.html:58
+#: build/api.py:282 part/models.py:3784 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,8 +998,8 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:172 order/models.py:364 order/models.py:792
-#: order/models.py:1136 order/models.py:1772 part/admin.py:274
-#: part/models.py:3795 part/templates/part/upload_bom.html:54
+#: order/models.py:1136 order/models.py:1781 part/admin.py:274
+#: part/models.py:3799 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
@@ -1025,10 +1029,10 @@ msgstr ""
#: build/models.py:197 build/templates/build/build_base.html:97
#: build/templates/build/detail.html:29 company/models.py:908
#: order/models.py:1243 order/models.py:1358 order/models.py:1359
-#: part/models.py:366 part/models.py:2847 part/models.py:2973
-#: part/models.py:3110 part/models.py:3129 part/models.py:3148
-#: part/models.py:3169 part/models.py:3261 part/models.py:3535
-#: part/models.py:3657 part/models.py:3760 part/models.py:4083
+#: part/models.py:366 part/models.py:2851 part/models.py:2977
+#: part/models.py:3114 part/models.py:3133 part/models.py:3152
+#: part/models.py:3173 part/models.py:3265 part/models.py:3539
+#: part/models.py:3661 part/models.py:3764 part/models.py:4087
#: part/serializers.py:1010 part/serializers.py:1497
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
@@ -1046,7 +1050,7 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:15
#: templates/email/overdue_build_order.html:16
-#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
+#: templates/js/translated/barcode.js:546 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
#: templates/js/translated/build.js:1299 templates/js/translated/build.js:1730
#: templates/js/translated/build.js:2150 templates/js/translated/build.js:2323
@@ -1152,7 +1156,7 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:277 order/models.py:414 order/models.py:1815
+#: build/models.py:277 order/models.py:414 order/models.py:1824
#: templates/js/translated/build.js:2235
msgid "Completion Date"
msgstr ""
@@ -1247,7 +1251,7 @@ msgstr ""
#: build/models.py:860 build/serializers.py:218 build/serializers.py:257
#: build/serializers.py:815 order/models.py:445 order/serializers.py:389
#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661
-#: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390
+#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1262,9 +1266,9 @@ msgstr ""
#: build/models.py:1293 build/models.py:1551 build/serializers.py:205
#: build/serializers.py:242 build/templates/build/build_base.html:102
#: build/templates/build/detail.html:34 common/models.py:2366
-#: order/models.py:1123 order/models.py:1694 order/serializers.py:1267
+#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:2986 part/models.py:3776
+#: part/forms.py:47 part/models.py:2990 part/models.py:3780
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1279,7 +1283,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:295
#: stock/templates/stock/item_base.html:342
#: templates/email/build_order_completed.html:18
-#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
+#: templates/js/translated/barcode.js:548 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:516
#: templates/js/translated/build.js:732 templates/js/translated/build.js:1356
#: templates/js/translated/build.js:1733 templates/js/translated/build.js:2345
@@ -1319,11 +1323,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1393 order/models.py:1650
+#: build/models.py:1393 order/models.py:1659
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1399 order/models.py:1653
+#: build/models.py:1399 order/models.py:1662
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -1432,8 +1436,8 @@ msgstr ""
#: 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
-#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:994
+#: templates/js/translated/barcode.js:547
+#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994
#: templates/js/translated/build.js:2360
#: templates/js/translated/purchase_order.js:1174
#: templates/js/translated/purchase_order.js:1264
@@ -1469,7 +1473,7 @@ msgstr ""
#: build/serializers.py:500 build/templates/build/build_base.html:151
#: build/templates/build/detail.html:62 order/models.py:818
-#: order/models.py:1798 order/serializers.py:534 stock/admin.py:124
+#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124
#: stock/serializers.py:726 stock/serializers.py:1289
#: stock/templates/stock/item_base.html:427
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179
@@ -1683,8 +1687,8 @@ msgstr ""
#: part/templates/part/part_base.html:47
#: stock/templates/stock/item_base.html:47
#: stock/templates/stock/location.html:59
-#: templates/js/translated/barcode.js:479
-#: templates/js/translated/barcode.js:484
+#: templates/js/translated/barcode.js:496
+#: templates/js/translated/barcode.js:501
msgid "Unlink Barcode"
msgstr ""
@@ -2367,7 +2371,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1344 part/admin.py:55 part/models.py:3540
+#: common/models.py:1344 part/admin.py:55 part/models.py:3544
#: report/models.py:176 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
@@ -3406,7 +3410,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:2374 company/serializers.py:485 order/admin.py:41
-#: order/models.py:1181 order/models.py:2005
+#: order/models.py:1181 order/models.py:2014
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:741
@@ -3871,7 +3875,7 @@ msgstr ""
#: company/models.py:532
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2312 templates/js/translated/company.js:1156
+#: stock/models.py:2318 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492
#: templates/js/translated/stock.js:1502
msgid "Value"
@@ -3882,7 +3886,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:539 company/templates/company/supplier_part.html:168
-#: part/admin.py:39 part/models.py:924 part/models.py:3396
+#: part/admin.py:39 part/models.py:924 part/models.py:3400
#: 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
@@ -3942,7 +3946,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:732 company/templates/company/supplier_part.html:187
-#: part/admin.py:275 part/models.py:3798 part/templates/part/upload_bom.html:59
+#: part/admin.py:275 part/models.py:3802 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
@@ -4065,7 +4069,7 @@ msgid "Delete image"
msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:806
-#: order/models.py:1786 order/templates/order/return_order_base.html:131
+#: order/models.py:1795 order/templates/order/return_order_base.html:131
#: order/templates/order/sales_order_base.html:144 stock/models.py:754
#: stock/models.py:755 stock/serializers.py:1044
#: stock/templates/stock/item_base.html:405
@@ -4567,7 +4571,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1411 order/models.py:1975 order/models.py:2021
+#: order/api.py:1411 order/models.py:1984 order/models.py:2030
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4653,15 +4657,15 @@ msgstr ""
msgid "received by"
msgstr ""
-#: order/models.py:408 order/models.py:1809
+#: order/models.py:408 order/models.py:1818
msgid "Issue Date"
msgstr ""
-#: order/models.py:409 order/models.py:1810
+#: order/models.py:409 order/models.py:1819
msgid "Date order was issued"
msgstr ""
-#: order/models.py:415 order/models.py:1816
+#: order/models.py:415 order/models.py:1825
msgid "Date order was completed"
msgstr ""
@@ -4677,11 +4681,11 @@ msgstr ""
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:826 order/models.py:1803
+#: order/models.py:826 order/models.py:1812
msgid "Customer Reference "
msgstr ""
-#: order/models.py:826 order/models.py:1804
+#: order/models.py:826 order/models.py:1813
msgid "Customer order reference code"
msgstr ""
@@ -4752,8 +4756,8 @@ msgid "deleted"
msgstr ""
#: order/models.py:1226 order/models.py:1310 order/models.py:1350
-#: order/models.py:1449 order/models.py:1598 order/models.py:1974
-#: order/models.py:2021 templates/js/translated/sales_order.js:1488
+#: order/models.py:1449 order/models.py:1598 order/models.py:1983
+#: order/models.py:2030 templates/js/translated/sales_order.js:1488
msgid "Order"
msgstr ""
@@ -4830,7 +4834,7 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1477 order/models.py:1676 order/serializers.py:1282
+#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282
#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
@@ -4879,77 +4883,77 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1656 order/serializers.py:1146
+#: order/models.py:1665 order/serializers.py:1146
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1668
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1660
+#: order/models.py:1669 plugin/base/barcodes/api.py:516
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1668
+#: order/models.py:1677
msgid "Line"
msgstr ""
-#: order/models.py:1677
+#: order/models.py:1686
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1690 order/models.py:1982
+#: order/models.py:1699 order/models.py:1991
#: templates/js/translated/return_order.js:722
msgid "Item"
msgstr ""
-#: order/models.py:1691
+#: order/models.py:1700
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1694
+#: order/models.py:1703
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1773
+#: order/models.py:1782
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1787
+#: order/models.py:1796
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1798
+#: order/models.py:1807
msgid "Return order status"
msgstr ""
-#: order/models.py:1967
+#: order/models.py:1976
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1983
+#: order/models.py:1992
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1988
+#: order/models.py:1997
msgid "Received Date"
msgstr ""
-#: order/models.py:1989
+#: order/models.py:1998
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:2000 templates/js/translated/return_order.js:733
+#: order/models.py:2009 templates/js/translated/return_order.js:733
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:2000
+#: order/models.py:2009
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:2006
+#: order/models.py:2015
msgid "Cost associated with return or repair for this line item"
msgstr ""
@@ -5493,12 +5497,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:32 part/admin.py:269 part/models.py:3661 part/stocktake.py:217
+#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:33 part/admin.py:271 part/models.py:3665 part/stocktake.py:218
+#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
@@ -5575,12 +5579,12 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2912 part/models.py:2924
+#: part/admin.py:66 part/models.py:2916 part/models.py:2928
#: templates/js/translated/part.js:969
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2918 part/models.py:2930
+#: part/admin.py:67 part/models.py:2922 part/models.py:2934
#: templates/js/translated/part.js:979
msgid "Maximum Cost"
msgstr ""
@@ -5621,7 +5625,7 @@ msgstr ""
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3669
+#: part/admin.py:270 part/models.py:3673
msgid "Part IPN"
msgstr ""
@@ -5683,7 +5687,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:79 part/models.py:3610 part/templates/part/category.html:16
+#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5764,7 +5768,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:782 part/models.py:3666
+#: part/models.py:782 part/models.py:3670
msgid "Part name"
msgstr ""
@@ -5788,7 +5792,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:819 part/models.py:3189 part/models.py:3609
+#: part/models.py:819 part/models.py:3193 part/models.py:3613
#: part/serializers.py:359 part/serializers.py:1016
#: part/templates/part/part_base.html:260 stock/api.py:633
#: templates/InvenTree/settings/settings_staff_js.html:300
@@ -5899,155 +5903,155 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2839
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2852
+#: part/models.py:2856
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2857
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2862
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2863
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2868
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2869
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2874
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2875
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2880
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2881
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2886
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2883
+#: part/models.py:2887
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2888
+#: part/models.py:2892
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2889
+#: part/models.py:2893
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2898
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2895
+#: part/models.py:2899
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2900
+#: part/models.py:2904
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2905
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2906
+#: part/models.py:2910
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2911
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2917
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:2919
+#: part/models.py:2923
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:2925
+#: part/models.py:2929
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2931
+#: part/models.py:2935
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2940
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2937
+#: part/models.py:2941
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2942
+#: part/models.py:2946
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2943
+#: part/models.py:2947
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2948
+#: part/models.py:2952
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2949
+#: part/models.py:2953
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2954
+#: part/models.py:2958
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2955
+#: part/models.py:2959
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:2974
+#: part/models.py:2978
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2983
msgid "Item Count"
msgstr ""
-#: part/models.py:2980
+#: part/models.py:2984
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:2991
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:2991 part/models.py:3071
+#: part/models.py:2995 part/models.py:3075
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -6059,318 +6063,318 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:2992
+#: part/models.py:2996
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3000
+#: part/models.py:3004
msgid "Additional notes"
msgstr ""
-#: part/models.py:3008
+#: part/models.py:3012
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3017
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3018
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3019
+#: part/models.py:3023
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3024
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3078 templates/InvenTree/settings/settings_staff_js.html:529
+#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529
msgid "Report"
msgstr ""
-#: part/models.py:3079
+#: part/models.py:3083
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3084 templates/InvenTree/settings/settings_staff_js.html:536
+#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536
msgid "Part Count"
msgstr ""
-#: part/models.py:3085
+#: part/models.py:3089
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3093
+#: part/models.py:3097
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3233
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3246
+#: part/models.py:3250
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3266 templates/js/translated/part.js:2866
+#: part/models.py:3270 templates/js/translated/part.js:2866
msgid "Test Name"
msgstr ""
-#: part/models.py:3267
+#: part/models.py:3271
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3272
+#: part/models.py:3276
msgid "Test Description"
msgstr ""
-#: part/models.py:3273
+#: part/models.py:3277
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3278 templates/js/translated/part.js:2875
+#: part/models.py:3282 templates/js/translated/part.js:2875
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3283
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3284 templates/js/translated/part.js:2883
+#: part/models.py:3288 templates/js/translated/part.js:2883
msgid "Requires Value"
msgstr ""
-#: part/models.py:3285
+#: part/models.py:3289
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3290 templates/js/translated/part.js:2890
+#: part/models.py:3294 templates/js/translated/part.js:2890
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3291
+#: part/models.py:3295
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3336
+#: part/models.py:3340
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3341
+#: part/models.py:3345
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3363
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3379
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3390
+#: part/models.py:3394
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3396
+#: part/models.py:3400
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3406
+#: part/models.py:3410
msgid "Parameter description"
msgstr ""
-#: part/models.py:3412 templates/js/translated/part.js:1627
+#: part/models.py:3416 templates/js/translated/part.js:1627
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3413
+#: part/models.py:3417
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3418 templates/js/translated/part.js:1636
+#: part/models.py:3422 templates/js/translated/part.js:1636
msgid "Choices"
msgstr ""
-#: part/models.py:3419
+#: part/models.py:3423
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3493
+#: part/models.py:3497
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3535
+#: part/models.py:3539
msgid "Parent Part"
msgstr ""
-#: part/models.py:3540 part/models.py:3615 part/models.py:3616
+#: part/models.py:3544 part/models.py:3619 part/models.py:3620
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Data"
msgstr ""
-#: part/models.py:3545
+#: part/models.py:3549
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3620 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:3621
+#: part/models.py:3625
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3658
+#: part/models.py:3662
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3662
+#: part/models.py:3666
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3670
+#: part/models.py:3674
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3673
+#: part/models.py:3677
msgid "Level"
msgstr ""
-#: part/models.py:3674
+#: part/models.py:3678
msgid "BOM level"
msgstr ""
-#: part/models.py:3680 part/models.py:4075 stock/api.py:648
+#: part/models.py:3684 part/models.py:4079 stock/api.py:648
msgid "BOM Item"
msgstr ""
-#: part/models.py:3761
+#: part/models.py:3765
msgid "Select parent part"
msgstr ""
-#: part/models.py:3769
+#: part/models.py:3773
msgid "Sub part"
msgstr ""
-#: part/models.py:3770
+#: part/models.py:3774
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3776
+#: part/models.py:3780
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3781
+#: part/models.py:3785
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3787
+#: part/models.py:3791
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3791 part/templates/part/upload_bom.html:55
+#: part/models.py:3795 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3796
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3795
+#: part/models.py:3799
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3798
+#: part/models.py:3802
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "Checksum"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3806
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3807 templates/js/translated/table_filters.js:174
+#: part/models.py:3811 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3808
+#: part/models.py:3812
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3813 part/templates/part/upload_bom.html:57
+#: part/models.py:3817 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:3814
+#: part/models.py:3818
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3819 part/templates/part/upload_bom.html:56
+#: part/models.py:3823 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3820
+#: part/models.py:3824
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3906 stock/models.py:613
+#: part/models.py:3910 stock/models.py:613
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3915 part/models.py:3917
+#: part/models.py:3919 part/models.py:3921
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4042
+#: part/models.py:4046
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4063
+#: part/models.py:4067
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4080
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4084
+#: part/models.py:4088
msgid "Substitute part"
msgstr ""
-#: part/models.py:4099
+#: part/models.py:4103
msgid "Part 1"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Part 2"
msgstr ""
-#: part/models.py:4103
+#: part/models.py:4107
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4120
+#: part/models.py:4124
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4124
+#: part/models.py:4128
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7402,43 +7406,73 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339
+#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346
+#: plugin/base/barcodes/api.py:540
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:127
+#: plugin/base/barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:154
+#: plugin/base/barcodes/api.py:157
#: templates/js/translated/purchase_order.js:1402
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:302
+#: plugin/base/barcodes/api.py:309
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:319
+#: plugin/base/barcodes/api.py:326
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:324
+#: plugin/base/barcodes/api.py:331
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:349
+#: plugin/base/barcodes/api.py:356
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:395
+#: plugin/base/barcodes/api.py:411
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:430
+#: plugin/base/barcodes/api.py:449
msgid "No match for supplier barcode"
msgstr ""
+#: plugin/base/barcodes/api.py:498
+msgid "Multiple matching line items found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:503
+msgid "No matching line item found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552
+msgid "Barcode does not match an existing stock item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:563
+msgid "Stock item does not match line item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579
+#: templates/js/translated/sales_order.js:1917
+msgid "Insufficient stock available"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:599
+msgid "Stock item allocated to sales order"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:603
+msgid "Not enough information"
+msgstr ""
+
#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181
msgid "Found multiple matching supplier parts for barcode"
msgstr ""
@@ -7474,7 +7508,7 @@ msgid "Scanned barcode data"
msgstr ""
#: plugin/base/barcodes/serializers.py:81
-msgid "PurchaseOrder to allocate items against"
+msgid "Purchase Order to allocate items against"
msgstr ""
#: plugin/base/barcodes/serializers.py:88
@@ -7497,6 +7531,30 @@ msgstr ""
msgid "Cannot select a structural location"
msgstr ""
+#: plugin/base/barcodes/serializers.py:140
+msgid "Sales Order to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:147
+msgid "Sales order is not pending"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:154
+msgid "Sales order line item to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:160
+msgid "Sales order shipment to allocate items against"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:167
+msgid "Shipment has already been delivered"
+msgstr ""
+
+#: plugin/base/barcodes/serializers.py:173
+msgid "Quantity to allocate"
+msgstr ""
+
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -8051,12 +8109,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2300 templates/js/translated/stock.js:1475
+#: stock/models.py:2306 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2306
+#: stock/models.py:2312
msgid "Result"
msgstr ""
@@ -8388,104 +8446,104 @@ msgstr ""
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1411
+#: stock/models.py:1417
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1417
+#: stock/models.py:1423
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1423
+#: stock/models.py:1429
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
msgstr ""
-#: stock/models.py:1426
+#: stock/models.py:1432
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1429
+#: stock/models.py:1435
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1436 stock/serializers.py:449
+#: stock/models.py:1442 stock/serializers.py:449
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1507
+#: stock/models.py:1513
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1510
+#: stock/models.py:1516
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1513
+#: stock/models.py:1519
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1516
+#: stock/models.py:1522
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1519
+#: stock/models.py:1525
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1522
+#: stock/models.py:1528
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1529 stock/serializers.py:1194
+#: stock/models.py:1535 stock/serializers.py:1194
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1533
+#: stock/models.py:1539
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1537
+#: stock/models.py:1543
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1547
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1735
+#: stock/models.py:1741
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2218
+#: stock/models.py:2224
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2276
+#: stock/models.py:2282
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2282
+#: stock/models.py:2288
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2301
+#: stock/models.py:2307
msgid "Test name"
msgstr ""
-#: stock/models.py:2307
+#: stock/models.py:2313
msgid "Test result"
msgstr ""
-#: stock/models.py:2313
+#: stock/models.py:2319
msgid "Test output value"
msgstr ""
-#: stock/models.py:2320
+#: stock/models.py:2326
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2326
+#: stock/models.py:2332
msgid "Test notes"
msgstr ""
@@ -10358,73 +10416,73 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:458
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:481
+#: templates/js/translated/barcode.js:498
msgid "This will remove the link to the associated barcode"
msgstr ""
-#: templates/js/translated/barcode.js:487
+#: templates/js/translated/barcode.js:504
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:593
+#: templates/js/translated/barcode.js:610
msgid "Scan Stock Items Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:595
+#: templates/js/translated/barcode.js:612
msgid "Scan stock item barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:598
-#: templates/js/translated/barcode.js:795
+#: templates/js/translated/barcode.js:615
+#: templates/js/translated/barcode.js:812
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:630
+#: templates/js/translated/barcode.js:647
msgid "No barcode provided"
msgstr ""
-#: templates/js/translated/barcode.js:670
+#: templates/js/translated/barcode.js:687
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:674
+#: templates/js/translated/barcode.js:691
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:681
+#: templates/js/translated/barcode.js:698
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:690
+#: templates/js/translated/barcode.js:707
msgid "Barcode does not match valid stock item"
msgstr ""
-#: templates/js/translated/barcode.js:709
+#: templates/js/translated/barcode.js:726
msgid "Scan Stock Container Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:711
+#: templates/js/translated/barcode.js:728
msgid "Scan stock container barcode to check in to this location"
msgstr ""
-#: templates/js/translated/barcode.js:745
+#: templates/js/translated/barcode.js:762
msgid "Barcode does not match valid stock location"
msgstr ""
-#: templates/js/translated/barcode.js:789
+#: templates/js/translated/barcode.js:806
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:858
-#: templates/js/translated/barcode.js:867
+#: templates/js/translated/barcode.js:875
+#: templates/js/translated/barcode.js:884
msgid "Barcode does not match a valid location"
msgstr ""
@@ -10973,11 +11031,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2579
-#: templates/js/translated/sales_order.js:1917
-msgid "Insufficient stock available"
-msgstr ""
-
#: templates/js/translated/build.js:2581
#: templates/js/translated/sales_order.js:1915
msgid "Sufficient stock available"
diff --git a/src/frontend/src/locales/bg/messages.po b/src/frontend/src/locales/bg/messages.po
index 8f1ab5968a4a..baeb0f543d44 100644
--- a/src/frontend/src/locales/bg/messages.po
+++ b/src/frontend/src/locales/bg/messages.po
@@ -51,7 +51,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr ""
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr ""
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr ""
@@ -1126,51 +1126,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr ""
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr ""
@@ -1649,39 +1649,41 @@ msgstr ""
msgid "Units"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
@@ -4255,4 +4257,3 @@ msgstr ""
#: src/views/MobileAppView.tsx:23
msgid "Read the docs"
msgstr ""
-
diff --git a/src/frontend/src/locales/cs/messages.po b/src/frontend/src/locales/cs/messages.po
index 27501c042ba9..66604ec0b7ec 100644
--- a/src/frontend/src/locales/cs/messages.po
+++ b/src/frontend/src/locales/cs/messages.po
@@ -51,7 +51,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr ""
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr ""
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr ""
@@ -1126,51 +1126,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr ""
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr ""
@@ -1649,39 +1649,41 @@ msgstr ""
msgid "Units"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
@@ -4255,4 +4257,3 @@ msgstr ""
#: src/views/MobileAppView.tsx:23
msgid "Read the docs"
msgstr ""
-
diff --git a/src/frontend/src/locales/da/messages.po b/src/frontend/src/locales/da/messages.po
index 1e78ca3cfe12..73ddfa5a8693 100644
--- a/src/frontend/src/locales/da/messages.po
+++ b/src/frontend/src/locales/da/messages.po
@@ -51,7 +51,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr ""
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr ""
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr ""
@@ -1126,51 +1126,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr ""
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr ""
@@ -1649,39 +1649,41 @@ msgstr ""
msgid "Units"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
@@ -4255,4 +4257,3 @@ msgstr ""
#: src/views/MobileAppView.tsx:23
msgid "Read the docs"
msgstr ""
-
diff --git a/src/frontend/src/locales/de/messages.po b/src/frontend/src/locales/de/messages.po
index 0f3447cf92c8..6d3beff234f7 100644
--- a/src/frontend/src/locales/de/messages.po
+++ b/src/frontend/src/locales/de/messages.po
@@ -51,7 +51,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr "Bearbeiten"
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr "Element löschen"
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr "Duplizieren"
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr "Mehr lesen"
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr "Unbekannter Fehler"
@@ -1126,51 +1126,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr "Verweigert"
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr "Nicht gefunden"
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr "Daten aktualisieren"
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr ""
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr ""
@@ -1649,39 +1649,41 @@ msgstr ""
msgid "Units"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
@@ -4255,4 +4257,3 @@ msgstr ""
#: src/views/MobileAppView.tsx:23
msgid "Read the docs"
msgstr ""
-
diff --git a/src/frontend/src/locales/el/messages.po b/src/frontend/src/locales/el/messages.po
index 31720cb15f40..ec1377203f2c 100644
--- a/src/frontend/src/locales/el/messages.po
+++ b/src/frontend/src/locales/el/messages.po
@@ -51,7 +51,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr ""
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr ""
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr ""
@@ -1126,51 +1126,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr ""
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr ""
@@ -1649,39 +1649,41 @@ msgstr ""
msgid "Units"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
@@ -4255,4 +4257,3 @@ msgstr ""
#: src/views/MobileAppView.tsx:23
msgid "Read the docs"
msgstr ""
-
diff --git a/src/frontend/src/locales/en/messages.po b/src/frontend/src/locales/en/messages.po
index 99acc9e4a95c..8809bfdeef8e 100644
--- a/src/frontend/src/locales/en/messages.po
+++ b/src/frontend/src/locales/en/messages.po
@@ -46,7 +46,7 @@ msgstr "Update"
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -215,7 +215,7 @@ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -275,7 +275,7 @@ msgid "Unlink custom barcode"
msgstr "Unlink custom barcode"
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr "Edit"
@@ -284,7 +284,7 @@ msgid "Delete item"
msgstr "Delete item"
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr "Duplicate"
@@ -302,7 +302,7 @@ msgid "Read More"
msgstr "Read More"
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr "Unknown error"
@@ -1121,51 +1121,51 @@ msgstr "Clear Filters"
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr "No records found"
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr "Server returned incorrect data type"
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr "Bad request"
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr "Unauthorized"
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr "Forbidden"
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr "Not found"
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr "Barcode actions"
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr "Print actions"
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr "Refresh data"
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr "Table filters"
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr "Actions"
@@ -1644,39 +1644,41 @@ msgstr "Parameter"
msgid "Units"
msgstr "Units"
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr "Edit Part Parameter"
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr "Part parameter updated"
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr "Delete Part Parameter"
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr "Part parameter deleted"
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr "Are you sure you want to remove this parameter?"
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr "Add Part Parameter"
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr "Part parameter added"
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr "Add parameter"
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr "Include Variants"
diff --git a/src/frontend/src/locales/es-mx/messages.po b/src/frontend/src/locales/es-mx/messages.po
index b95b3e0887ac..0ccf781a9353 100644
--- a/src/frontend/src/locales/es-mx/messages.po
+++ b/src/frontend/src/locales/es-mx/messages.po
@@ -46,7 +46,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -196,7 +196,7 @@ msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -256,7 +256,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr ""
@@ -265,7 +265,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -283,7 +283,7 @@ msgid "Read More"
msgstr ""
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr ""
@@ -1094,51 +1094,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr ""
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr ""
@@ -1617,39 +1617,41 @@ msgstr ""
msgid "Units"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
diff --git a/src/frontend/src/locales/es/messages.po b/src/frontend/src/locales/es/messages.po
index 8d37e256ff8b..3ee3ad3170ef 100644
--- a/src/frontend/src/locales/es/messages.po
+++ b/src/frontend/src/locales/es/messages.po
@@ -51,7 +51,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr ""
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr ""
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr ""
@@ -1126,51 +1126,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr ""
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr ""
@@ -1649,39 +1649,41 @@ msgstr ""
msgid "Units"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
@@ -4255,4 +4257,3 @@ msgstr ""
#: src/views/MobileAppView.tsx:23
msgid "Read the docs"
msgstr ""
-
diff --git a/src/frontend/src/locales/fa/messages.po b/src/frontend/src/locales/fa/messages.po
index cea17e64fe3c..d76e2219eabe 100644
--- a/src/frontend/src/locales/fa/messages.po
+++ b/src/frontend/src/locales/fa/messages.po
@@ -51,7 +51,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr ""
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr ""
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr ""
@@ -1126,51 +1126,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr ""
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr ""
@@ -1649,39 +1649,41 @@ msgstr ""
msgid "Units"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
@@ -4255,4 +4257,3 @@ msgstr ""
#: src/views/MobileAppView.tsx:23
msgid "Read the docs"
msgstr ""
-
diff --git a/src/frontend/src/locales/fi/messages.po b/src/frontend/src/locales/fi/messages.po
index a1948dcd5d46..bd29e4722154 100644
--- a/src/frontend/src/locales/fi/messages.po
+++ b/src/frontend/src/locales/fi/messages.po
@@ -51,7 +51,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr ""
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr ""
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr ""
@@ -1126,51 +1126,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr ""
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr ""
@@ -1649,39 +1649,41 @@ msgstr ""
msgid "Units"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
@@ -4255,4 +4257,3 @@ msgstr ""
#: src/views/MobileAppView.tsx:23
msgid "Read the docs"
msgstr ""
-
diff --git a/src/frontend/src/locales/fr/messages.po b/src/frontend/src/locales/fr/messages.po
index 6ec752d73279..5d31e8b26ed7 100644
--- a/src/frontend/src/locales/fr/messages.po
+++ b/src/frontend/src/locales/fr/messages.po
@@ -51,7 +51,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr "Délier le code-barres personnalisé"
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr "Éditer"
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr "Supprimer l’article"
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr "Dupliquer"
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr "En Savoir Plus"
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr "Erreur inconnue"
@@ -1126,51 +1126,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr "Requête invalide"
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr "Non autorisé"
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr "Accès interdit"
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr "Elément non trouvé"
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr "Actions de code-barres"
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr ""
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr ""
@@ -1649,39 +1649,41 @@ msgstr ""
msgid "Units"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
@@ -4255,4 +4257,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 c0c842b3ba59..bef239143289 100644
--- a/src/frontend/src/locales/he/messages.po
+++ b/src/frontend/src/locales/he/messages.po
@@ -51,7 +51,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr ""
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr ""
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr ""
@@ -1126,51 +1126,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr ""
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr ""
@@ -1649,39 +1649,41 @@ msgstr ""
msgid "Units"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
@@ -4255,4 +4257,3 @@ msgstr ""
#: src/views/MobileAppView.tsx:23
msgid "Read the docs"
msgstr ""
-
diff --git a/src/frontend/src/locales/hi/messages.po b/src/frontend/src/locales/hi/messages.po
index 6bc203769d19..381717109f6f 100644
--- a/src/frontend/src/locales/hi/messages.po
+++ b/src/frontend/src/locales/hi/messages.po
@@ -51,7 +51,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr ""
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr ""
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr ""
@@ -1126,51 +1126,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr ""
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr ""
@@ -1649,39 +1649,41 @@ msgstr ""
msgid "Units"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
@@ -4255,4 +4257,3 @@ msgstr ""
#: src/views/MobileAppView.tsx:23
msgid "Read the docs"
msgstr ""
-
diff --git a/src/frontend/src/locales/hu/messages.po b/src/frontend/src/locales/hu/messages.po
index 6d6a01693550..e6dd85e3b329 100644
--- a/src/frontend/src/locales/hu/messages.po
+++ b/src/frontend/src/locales/hu/messages.po
@@ -51,7 +51,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr "Státusz: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr "Egyedi vonalkód leválasztása"
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr "Szerkesztés"
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr "Tétel törlése"
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr "Másolás"
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr "Tudj meg többet"
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr "Ismeretlen hiba"
@@ -1126,51 +1126,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr "Nincs találat"
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr "A szerver hibás adattípust küldött vissza"
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr "Hibás kérés"
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr "Jogosulatlan"
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr "Tiltott"
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr "Nem található"
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr "Vonalkód műveletek"
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr "Nyomtatási műveletek"
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr "Adatok frissítése"
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr "Táblaszűrők"
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr "Műveletek"
@@ -1649,39 +1649,41 @@ msgstr "Paraméter"
msgid "Units"
msgstr "Mértékegységek"
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr "Alkatrész paraméter szerkesztése"
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr "Alkatrész paraméter frissítve"
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr "Alkatrész paraméter törlése"
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr "Alkatrész paraméter törölve"
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr "Biztosan eltávolítod ezt a paramétert?"
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr "Alkatrész paraméter hozzáadása"
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr "Alkatrész paraméter hozzáadva"
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr "Paraméter hozzáadás"
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr "Változatok is"
@@ -4255,4 +4257,3 @@ msgstr "A platform felhasználói felülete táblagépekre és asztali számít
#: src/views/MobileAppView.tsx:23
msgid "Read the docs"
msgstr "Olvasd el a dokumentációt"
-
diff --git a/src/frontend/src/locales/it/messages.po b/src/frontend/src/locales/it/messages.po
index 93ef7a3002c3..e3e160cb0246 100644
--- a/src/frontend/src/locales/it/messages.po
+++ b/src/frontend/src/locales/it/messages.po
@@ -51,7 +51,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr ""
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr ""
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr ""
@@ -1126,51 +1126,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr ""
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr ""
@@ -1649,39 +1649,41 @@ msgstr ""
msgid "Units"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
@@ -4255,4 +4257,3 @@ msgstr ""
#: src/views/MobileAppView.tsx:23
msgid "Read the docs"
msgstr ""
-
diff --git a/src/frontend/src/locales/ja/messages.po b/src/frontend/src/locales/ja/messages.po
index 3f1a1d894404..7cf9b7a3c05c 100644
--- a/src/frontend/src/locales/ja/messages.po
+++ b/src/frontend/src/locales/ja/messages.po
@@ -51,7 +51,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr "編集"
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr "続きを読む"
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr ""
@@ -1126,51 +1126,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr "表フィルタ"
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr ""
@@ -1649,39 +1649,41 @@ msgstr ""
msgid "Units"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
@@ -4255,4 +4257,3 @@ msgstr ""
#: src/views/MobileAppView.tsx:23
msgid "Read the docs"
msgstr ""
-
diff --git a/src/frontend/src/locales/ko/messages.po b/src/frontend/src/locales/ko/messages.po
index 29a86d314c45..68e4864e81a0 100644
--- a/src/frontend/src/locales/ko/messages.po
+++ b/src/frontend/src/locales/ko/messages.po
@@ -51,7 +51,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr ""
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr ""
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr ""
@@ -1126,51 +1126,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr ""
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr ""
@@ -1649,39 +1649,41 @@ msgstr ""
msgid "Units"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
@@ -4255,4 +4257,3 @@ msgstr ""
#: src/views/MobileAppView.tsx:23
msgid "Read the docs"
msgstr ""
-
diff --git a/src/frontend/src/locales/nl/messages.po b/src/frontend/src/locales/nl/messages.po
index b57ccebd0788..e4662f22cad4 100644
--- a/src/frontend/src/locales/nl/messages.po
+++ b/src/frontend/src/locales/nl/messages.po
@@ -51,7 +51,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr ""
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr ""
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr ""
@@ -1126,51 +1126,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr ""
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr ""
@@ -1649,39 +1649,41 @@ msgstr ""
msgid "Units"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
@@ -4255,4 +4257,3 @@ msgstr ""
#: src/views/MobileAppView.tsx:23
msgid "Read the docs"
msgstr ""
-
diff --git a/src/frontend/src/locales/no/messages.po b/src/frontend/src/locales/no/messages.po
index 3c3e14b9bfdd..b3f2787d5b87 100644
--- a/src/frontend/src/locales/no/messages.po
+++ b/src/frontend/src/locales/no/messages.po
@@ -51,7 +51,7 @@ msgstr "Oppdater"
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr "Status: <0>arbeider0> ({0}), <1>utvidelser1>{1}"
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr "Koble fra egendefinert strekkode"
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr "Rediger"
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr "Slett element"
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr "Dupliser"
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr "Les mer"
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr "Ukjent feil"
@@ -1126,51 +1126,51 @@ msgstr "Fjern filtre"
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr "Ingen poster funnet"
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr "Serveren returnerte feil datatype"
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr "Ugyldig forespørsel"
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr "Uautorisert"
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr "Forbudt"
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr "Ikke funnet"
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr "Strekkodehandlinger"
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr "Utskriftshandlinger"
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr "Oppdater data"
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr "Tabellfiltre"
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr "Handlinger"
@@ -1649,39 +1649,41 @@ msgstr "Parametre"
msgid "Units"
msgstr "Enheter"
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr "Rediger del-parameter"
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr "Del-parameter oppdatert"
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr "Slett del-parameter"
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr "Del-parameter slettet"
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr "Er du sikker på at du vil fjerne dette parameteret?"
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr "Legg til del-parameter"
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr "Del-parameter lagt til"
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr "Legg til parameter"
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr "Inkluder varianter"
@@ -4255,4 +4257,3 @@ msgstr "Plattformgrensesnittet er optimalisert for Nettbrett og Desktop, du kan
#: src/views/MobileAppView.tsx:23
msgid "Read the docs"
msgstr "Les dokumentasjonen"
-
diff --git a/src/frontend/src/locales/pl/messages.po b/src/frontend/src/locales/pl/messages.po
index 6ead06029904..f5af08706461 100644
--- a/src/frontend/src/locales/pl/messages.po
+++ b/src/frontend/src/locales/pl/messages.po
@@ -51,7 +51,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr ""
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr ""
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr ""
@@ -1126,51 +1126,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr ""
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr ""
@@ -1649,39 +1649,41 @@ msgstr ""
msgid "Units"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
@@ -4255,4 +4257,3 @@ msgstr ""
#: src/views/MobileAppView.tsx:23
msgid "Read the docs"
msgstr ""
-
diff --git a/src/frontend/src/locales/pseudo-LOCALE/messages.po b/src/frontend/src/locales/pseudo-LOCALE/messages.po
index f3cf8b527f84..4a8f5c62f39c 100644
--- a/src/frontend/src/locales/pseudo-LOCALE/messages.po
+++ b/src/frontend/src/locales/pseudo-LOCALE/messages.po
@@ -86,7 +86,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -255,7 +255,7 @@ msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -315,7 +315,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr ""
@@ -324,7 +324,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -342,7 +342,7 @@ msgid "Read More"
msgstr ""
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr ""
@@ -1165,51 +1165,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr ""
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr ""
@@ -1688,39 +1688,41 @@ msgstr ""
msgid "Units"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
diff --git a/src/frontend/src/locales/pt-br/messages.po b/src/frontend/src/locales/pt-br/messages.po
index 7e49062cd6dd..f7a3daa60788 100644
--- a/src/frontend/src/locales/pt-br/messages.po
+++ b/src/frontend/src/locales/pt-br/messages.po
@@ -46,7 +46,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -196,7 +196,7 @@ msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -256,7 +256,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr ""
@@ -265,7 +265,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -283,7 +283,7 @@ msgid "Read More"
msgstr ""
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr ""
@@ -1094,51 +1094,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr ""
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr ""
@@ -1617,39 +1617,41 @@ msgstr ""
msgid "Units"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
diff --git a/src/frontend/src/locales/pt/messages.po b/src/frontend/src/locales/pt/messages.po
index 612a5ea76d10..beb462486b7a 100644
--- a/src/frontend/src/locales/pt/messages.po
+++ b/src/frontend/src/locales/pt/messages.po
@@ -51,7 +51,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr "Estado: <0>funcionário0> ({0}), <1>extensões1>{1}"
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr "Editar"
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr "Leia Mais"
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr "Erro desconhecido"
@@ -1126,51 +1126,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr "Nenhum registro encontrado"
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr "Requisição inválida"
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr "Não autorizado"
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr "Proibido"
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr "Não encontrado"
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr "Ações de código de barras"
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr "Ações de impressão"
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr "Atualizar dados"
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr "Filtros da Tabela"
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr "Ações"
@@ -1649,39 +1649,41 @@ msgstr ""
msgid "Units"
msgstr "Unidades"
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
@@ -4255,4 +4257,3 @@ msgstr "A interface de usuário da plataforma é otimizada para Tablets e Deskto
#: src/views/MobileAppView.tsx:23
msgid "Read the docs"
msgstr "Leia a documentação"
-
diff --git a/src/frontend/src/locales/ru/messages.po b/src/frontend/src/locales/ru/messages.po
index c122d0182038..ce1242cfe5e1 100644
--- a/src/frontend/src/locales/ru/messages.po
+++ b/src/frontend/src/locales/ru/messages.po
@@ -51,7 +51,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr "Состояние: <0>рабочий 0> ({0}), <1>плагины1>{
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr "Изменить"
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr "Подробнее"
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr "Неизвестная ошибка"
@@ -1126,51 +1126,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr ""
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr ""
@@ -1649,39 +1649,41 @@ msgstr ""
msgid "Units"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
@@ -4255,4 +4257,3 @@ msgstr ""
#: src/views/MobileAppView.tsx:23
msgid "Read the docs"
msgstr ""
-
diff --git a/src/frontend/src/locales/sl/messages.po b/src/frontend/src/locales/sl/messages.po
index a418c303b639..62dcba812639 100644
--- a/src/frontend/src/locales/sl/messages.po
+++ b/src/frontend/src/locales/sl/messages.po
@@ -51,7 +51,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr ""
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr ""
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr ""
@@ -1126,51 +1126,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr ""
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr ""
@@ -1649,39 +1649,41 @@ msgstr ""
msgid "Units"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
@@ -4255,4 +4257,3 @@ msgstr ""
#: src/views/MobileAppView.tsx:23
msgid "Read the docs"
msgstr ""
-
diff --git a/src/frontend/src/locales/sr/messages.po b/src/frontend/src/locales/sr/messages.po
new file mode 100644
index 000000000000..9c8597a07a82
--- /dev/null
+++ b/src/frontend/src/locales/sr/messages.po
@@ -0,0 +1,3779 @@
+msgid ""
+msgstr ""
+"POT-Creation-Date: 2023-12-16 10:47+0000\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: @lingui/cli\n"
+"Language: sr\n"
+
+#: src/components/DashboardItemProxy.tsx:34
+#: src/components/tables/company/AddressTable.tsx:36
+msgid "Title"
+msgstr ""
+
+#: src/components/forms/ApiForm.tsx:129
+#: src/functions/forms.tsx:49
+#: src/functions/forms.tsx:58
+#: src/functions/forms.tsx:266
+msgid "Form Error"
+msgstr ""
+
+#: src/components/forms/ApiForm.tsx:301
+#: src/components/widgets/MarkdownEditor.tsx:146
+msgid "Success"
+msgstr ""
+
+#: src/components/forms/ApiForm.tsx:372
+msgid "Form Errors Exist"
+msgstr ""
+
+#: src/components/forms/ApiForm.tsx:425
+#: src/contexts/ThemeContext.tsx:64
+#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51
+msgid "Submit"
+msgstr ""
+
+#: src/components/forms/ApiForm.tsx:461
+msgid "Update"
+msgstr ""
+
+#: src/components/forms/ApiForm.tsx:481
+#: src/components/items/ActionDropdown.tsx:173
+#: src/components/tables/RowActions.tsx:70
+#: src/functions/forms.tsx:306
+#: src/hooks/UseForm.tsx:117
+#: src/pages/Index/Scan.tsx:332
+#: src/pages/Notifications.tsx:79
+msgid "Delete"
+msgstr ""
+
+#: src/components/forms/AuthenticationForm.tsx:44
+#: src/functions/auth.tsx:33
+msgid "Login failed"
+msgstr ""
+
+#: src/components/forms/AuthenticationForm.tsx:45
+#: src/components/forms/AuthenticationForm.tsx:73
+#: src/functions/auth.tsx:111
+msgid "Check your input and try again."
+msgstr ""
+
+#: src/components/forms/AuthenticationForm.tsx:50
+msgid "Login successful"
+msgstr ""
+
+#: src/components/forms/AuthenticationForm.tsx:51
+msgid "Welcome back!"
+msgstr ""
+
+#: src/components/forms/AuthenticationForm.tsx:64
+#: src/functions/auth.tsx:102
+msgid "Mail delivery successful"
+msgstr ""
+
+#: 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."
+msgstr ""
+
+#: src/components/forms/AuthenticationForm.tsx:72
+msgid "Input error"
+msgstr ""
+
+#: src/components/forms/AuthenticationForm.tsx:84
+msgid "Welcome, log in below"
+msgstr ""
+
+#: src/components/forms/AuthenticationForm.tsx:91
+#: src/components/tables/settings/UserTable.tsx:163
+msgid "Username"
+msgstr ""
+
+#: src/components/forms/AuthenticationForm.tsx:97
+#: src/pages/Auth/Set-Password.tsx:106
+msgid "Password"
+msgstr ""
+
+#: src/components/forms/AuthenticationForm.tsx:98
+msgid "Your password"
+msgstr ""
+
+#: src/components/forms/AuthenticationForm.tsx:109
+#: src/pages/Auth/Reset.tsx:26
+msgid "Reset password"
+msgstr ""
+
+#: src/components/forms/AuthenticationForm.tsx:117
+#: src/components/tables/company/ContactTable.tsx:47
+#: src/components/tables/settings/UserTable.tsx:157
+#: src/pages/Auth/Reset.tsx:31
+#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49
+msgid "Email"
+msgstr ""
+
+#: src/components/forms/AuthenticationForm.tsx:118
+#: src/pages/Auth/Reset.tsx:32
+#: src/pages/Auth/Set-Password.tsx:107
+msgid "We will send you a link to login - if you are registered"
+msgstr ""
+
+#: src/components/forms/AuthenticationForm.tsx:134
+msgid "Send me an email"
+msgstr ""
+
+#: src/components/forms/AuthenticationForm.tsx:136
+msgid "I will use username and password"
+msgstr ""
+
+#: src/components/forms/AuthenticationForm.tsx:145
+msgid "Log In"
+msgstr ""
+
+#: src/components/forms/AuthenticationForm.tsx:147
+msgid "Send Email"
+msgstr ""
+
+#: src/components/forms/HostOptionsForm.tsx:36
+#: src/components/forms/HostOptionsForm.tsx:66
+msgid "Host"
+msgstr ""
+
+#: src/components/forms/HostOptionsForm.tsx:42
+#: src/components/forms/HostOptionsForm.tsx:69
+#: src/components/tables/company/ContactTable.tsx:35
+#: src/components/tables/part/PartCategoryTable.tsx:26
+#: src/components/tables/part/PartParameterTemplateTable.tsx:50
+#: src/components/tables/plugin/PluginErrorTable.tsx:33
+#: src/components/tables/plugin/PluginListTable.tsx:157
+#: src/components/tables/settings/CustomUnitsTable.tsx:31
+#: src/components/tables/settings/GroupTable.tsx:100
+#: src/components/tables/stock/StockLocationTable.tsx:51
+msgid "Name"
+msgstr ""
+
+#: src/components/forms/HostOptionsForm.tsx:74
+msgid "No one here..."
+msgstr ""
+
+#: src/components/forms/HostOptionsForm.tsx:85
+msgid "Add Host"
+msgstr ""
+
+#: src/components/forms/HostOptionsForm.tsx:89
+#: src/components/widgets/MarkdownEditor.tsx:73
+msgid "Save"
+msgstr ""
+
+#: src/components/forms/InstanceOptions.tsx:43
+msgid "Select destination instance"
+msgstr ""
+
+#: src/components/forms/InstanceOptions.tsx:71
+msgid "Edit possible host options"
+msgstr ""
+
+#: src/components/forms/InstanceOptions.tsx:98
+msgid "Version: {0}"
+msgstr ""
+
+#: src/components/forms/InstanceOptions.tsx:100
+msgid "API:{0}"
+msgstr ""
+
+#: src/components/forms/InstanceOptions.tsx:102
+msgid "Name: {0}"
+msgstr ""
+
+#: src/components/forms/InstanceOptions.tsx:104
+msgid "State: <0>worker0> ({0}), <1>plugins1>{1}"
+msgstr ""
+
+#: src/components/forms/fields/ApiFormField.tsx:279
+#: src/components/nav/SearchDrawer.tsx:412
+#: src/components/tables/InvenTreeTable.tsx:331
+#: src/components/tables/plugin/PluginListTable.tsx:364
+#: src/components/widgets/MarkdownEditor.tsx:108
+#: src/components/widgets/MarkdownEditor.tsx:154
+#: src/pages/ErrorPage.tsx:12
+#: src/pages/ErrorPage.tsx:25
+msgid "Error"
+msgstr ""
+
+#: src/components/forms/fields/RelatedModelField.tsx:210
+#: src/pages/Index/Settings/UserSettings.tsx:64
+msgid "Search"
+msgstr ""
+
+#: src/components/forms/fields/RelatedModelField.tsx:211
+#: src/components/modals/AboutInvenTreeModal.tsx:67
+#: src/components/widgets/WidgetLayout.tsx:134
+#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301
+msgid "Loading"
+msgstr ""
+
+#: src/components/forms/fields/RelatedModelField.tsx:213
+msgid "No results found"
+msgstr ""
+
+#: src/components/images/Thumbnail.tsx:14
+#: src/components/images/Thumbnail.tsx:49
+msgid "Thumbnail"
+msgstr ""
+
+#: src/components/items/ActionDropdown.tsx:84
+#: src/pages/build/BuildDetail.tsx:204
+msgid "Barcode Actions"
+msgstr ""
+
+#: src/components/items/ActionDropdown.tsx:101
+msgid "View"
+msgstr ""
+
+#: src/components/items/ActionDropdown.tsx:102
+msgid "View barcode"
+msgstr ""
+
+#: src/components/items/ActionDropdown.tsx:118
+msgid "Link Barcode"
+msgstr ""
+
+#: src/components/items/ActionDropdown.tsx:119
+msgid "Link custom barcode"
+msgstr ""
+
+#: src/components/items/ActionDropdown.tsx:135
+msgid "Unlink Barcode"
+msgstr ""
+
+#: src/components/items/ActionDropdown.tsx:136
+msgid "Unlink custom barcode"
+msgstr ""
+
+#: src/components/items/ActionDropdown.tsx:154
+#: src/components/tables/RowActions.tsx:50
+msgid "Edit"
+msgstr ""
+
+#: src/components/items/ActionDropdown.tsx:174
+msgid "Delete item"
+msgstr ""
+
+#: src/components/items/ActionDropdown.tsx:192
+#: src/components/tables/RowActions.tsx:30
+#: src/pages/stock/StockDetail.tsx:195
+msgid "Duplicate"
+msgstr ""
+
+#: src/components/items/ActionDropdown.tsx:193
+msgid "Duplicate item"
+msgstr ""
+
+#: src/components/items/CopyButton.tsx:18
+msgid "Copy to clipboard"
+msgstr ""
+
+#: src/components/items/DocTooltip.tsx:94
+msgid "Read More"
+msgstr ""
+
+#: src/components/items/ErrorItem.tsx:5
+#: src/components/tables/InvenTreeTable.tsx:323
+msgid "Unknown error"
+msgstr ""
+
+#: src/components/items/ErrorItem.tsx:10
+msgid "An error occurred:"
+msgstr ""
+
+#: src/components/items/GettingStartedCarousel.tsx:64
+msgid "Read more"
+msgstr ""
+
+#: src/components/items/InfoItem.tsx:25
+msgid "None"
+msgstr ""
+
+#: src/components/items/InvenTreeLogo.tsx:23
+msgid "InvenTree Logo"
+msgstr ""
+
+#: src/components/items/OnlyStaff.tsx:9
+#: src/components/modals/AboutInvenTreeModal.tsx:30
+msgid "This information is only available for staff users"
+msgstr ""
+
+#: src/components/items/Placeholder.tsx:14
+msgid "This feature/button/site is a placeholder for a feature that is not implemented, only partial or intended for testing."
+msgstr ""
+
+#: src/components/items/Placeholder.tsx:17
+msgid "PLH"
+msgstr ""
+
+#: src/components/items/Placeholder.tsx:31
+msgid "This panel is a placeholder."
+msgstr ""
+
+#: src/components/items/ScanButton.tsx:15
+msgid "Scan QR code"
+msgstr ""
+
+#: src/components/items/YesNoButton.tsx:16
+#: src/components/tables/Filter.tsx:51
+msgid "Yes"
+msgstr ""
+
+#: src/components/items/YesNoButton.tsx:16
+#: src/components/tables/Filter.tsx:52
+msgid "No"
+msgstr ""
+
+#: src/components/modals/AboutInvenTreeModal.tsx:85
+msgid "Your InvenTree version status is"
+msgstr ""
+
+#: src/components/modals/AboutInvenTreeModal.tsx:89
+msgid "Development Version"
+msgstr ""
+
+#: src/components/modals/AboutInvenTreeModal.tsx:93
+msgid "Up to Date"
+msgstr ""
+
+#: src/components/modals/AboutInvenTreeModal.tsx:97
+msgid "Update Available"
+msgstr ""
+
+#: src/components/modals/AboutInvenTreeModal.tsx:102
+msgid "Version Information"
+msgstr ""
+
+#: src/components/modals/AboutInvenTreeModal.tsx:110
+msgid "InvenTree Version"
+msgstr ""
+
+#: src/components/modals/AboutInvenTreeModal.tsx:116
+msgid "Commit Hash"
+msgstr ""
+
+#: src/components/modals/AboutInvenTreeModal.tsx:121
+msgid "Commit Date"
+msgstr ""
+
+#: src/components/modals/AboutInvenTreeModal.tsx:126
+msgid "Commit Branch"
+msgstr ""
+
+#: src/components/modals/AboutInvenTreeModal.tsx:131
+#: src/components/modals/ServerInfoModal.tsx:124
+msgid "API Version"
+msgstr ""
+
+#: src/components/modals/AboutInvenTreeModal.tsx:134
+msgid "Python Version"
+msgstr ""
+
+#: src/components/modals/AboutInvenTreeModal.tsx:137
+msgid "Django Version"
+msgstr ""
+
+#: src/components/modals/AboutInvenTreeModal.tsx:147
+msgid "Links"
+msgstr ""
+
+#: src/components/modals/AboutInvenTreeModal.tsx:153
+msgid "InvenTree Documentation"
+msgstr ""
+
+#: src/components/modals/AboutInvenTreeModal.tsx:154
+msgid "View Code on GitHub"
+msgstr ""
+
+#: src/components/modals/AboutInvenTreeModal.tsx:155
+msgid "Credits"
+msgstr ""
+
+#: src/components/modals/AboutInvenTreeModal.tsx:156
+msgid "Mobile App"
+msgstr ""
+
+#: src/components/modals/AboutInvenTreeModal.tsx:157
+msgid "Submit Bug Report"
+msgstr ""
+
+#: src/components/modals/AboutInvenTreeModal.tsx:167
+msgid "Copy version information"
+msgstr ""
+
+#: src/components/modals/QrCodeModal.tsx:72
+msgid "Unknown response"
+msgstr ""
+
+#: src/components/modals/QrCodeModal.tsx:102
+#: src/pages/Index/Scan.tsx:618
+msgid "Error while getting camera"
+msgstr ""
+
+#: src/components/modals/QrCodeModal.tsx:125
+#: src/pages/Index/Scan.tsx:641
+msgid "Error while scanning"
+msgstr ""
+
+#: src/components/modals/QrCodeModal.tsx:139
+#: src/pages/Index/Scan.tsx:655
+msgid "Error while stopping"
+msgstr ""
+
+#: src/components/modals/QrCodeModal.tsx:154
+#: src/defaults/menuItems.tsx:21
+#: src/pages/Index/Scan.tsx:724
+msgid "Scanning"
+msgstr ""
+
+#: src/components/modals/QrCodeModal.tsx:154
+#: src/pages/Index/Scan.tsx:724
+msgid "Not scanning"
+msgstr ""
+
+#: src/components/modals/QrCodeModal.tsx:159
+#: src/pages/Index/Scan.tsx:730
+msgid "Select Camera"
+msgstr ""
+
+#: src/components/modals/QrCodeModal.tsx:169
+#: src/pages/Index/Scan.tsx:716
+msgid "Start scanning"
+msgstr ""
+
+#: src/components/modals/QrCodeModal.tsx:176
+#: src/pages/Index/Scan.tsx:710
+msgid "Stop scanning"
+msgstr ""
+
+#: src/components/modals/QrCodeModal.tsx:181
+msgid "No scans yet!"
+msgstr ""
+
+#: src/components/modals/QrCodeModal.tsx:201
+#: src/components/modals/ServerInfoModal.tsx:137
+msgid "Close modal"
+msgstr ""
+
+#: src/components/modals/ServerInfoModal.tsx:17
+#: src/pages/Index/Settings/SystemSettings.tsx:36
+msgid "Server"
+msgstr ""
+
+#: src/components/modals/ServerInfoModal.tsx:23
+msgid "Instance Name"
+msgstr ""
+
+#: src/components/modals/ServerInfoModal.tsx:29
+msgid "Database"
+msgstr ""
+
+#: src/components/modals/ServerInfoModal.tsx:38
+msgid "Debug Mode"
+msgstr ""
+
+#: src/components/modals/ServerInfoModal.tsx:41
+msgid "Server is running in debug mode"
+msgstr ""
+
+#: src/components/modals/ServerInfoModal.tsx:48
+msgid "Docker Mode"
+msgstr ""
+
+#: src/components/modals/ServerInfoModal.tsx:51
+msgid "Server is deployed using docker"
+msgstr ""
+
+#: src/components/modals/ServerInfoModal.tsx:57
+msgid "Plugin Support"
+msgstr ""
+
+#: src/components/modals/ServerInfoModal.tsx:62
+msgid "Plugin support enabled"
+msgstr ""
+
+#: src/components/modals/ServerInfoModal.tsx:64
+msgid "Plugin support disabled"
+msgstr ""
+
+#: src/components/modals/ServerInfoModal.tsx:71
+msgid "Server status"
+msgstr ""
+
+#: src/components/modals/ServerInfoModal.tsx:77
+msgid "Healthy"
+msgstr ""
+
+#: src/components/modals/ServerInfoModal.tsx:79
+msgid "Issues detected"
+msgstr ""
+
+#: src/components/modals/ServerInfoModal.tsx:88
+msgid "Background Worker"
+msgstr ""
+
+#: src/components/modals/ServerInfoModal.tsx:92
+msgid "Background worker not running"
+msgstr ""
+
+#: src/components/modals/ServerInfoModal.tsx:100
+msgid "Email Settings"
+msgstr ""
+
+#: src/components/modals/ServerInfoModal.tsx:104
+msgid "Email settings not configured"
+msgstr ""
+
+#: src/components/modals/ServerInfoModal.tsx:112
+#: src/components/tables/plugin/PluginListTable.tsx:175
+#: src/components/tables/plugin/PluginListTable.tsx:287
+msgid "Version"
+msgstr ""
+
+#: src/components/modals/ServerInfoModal.tsx:118
+msgid "Server Version"
+msgstr ""
+
+#: src/components/nav/MainMenu.tsx:38
+#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:26
+msgid "Settings"
+msgstr ""
+
+#: src/components/nav/MainMenu.tsx:41
+#: src/defaults/menuItems.tsx:15
+msgid "Account settings"
+msgstr ""
+
+#: src/components/nav/MainMenu.tsx:49
+#: src/defaults/menuItems.tsx:58
+#: src/pages/Index/Settings/SystemSettings.tsx:267
+msgid "System Settings"
+msgstr ""
+
+#: src/components/nav/MainMenu.tsx:59
+#: src/defaults/menuItems.tsx:63
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:109
+msgid "Admin Center"
+msgstr ""
+
+#: src/components/nav/MainMenu.tsx:69
+msgid "Logout"
+msgstr ""
+
+#: src/components/nav/NavHoverMenu.tsx:61
+msgid "Open Navigation"
+msgstr ""
+
+#: src/components/nav/NavHoverMenu.tsx:79
+msgid "View all"
+msgstr ""
+
+#: src/components/nav/NavHoverMenu.tsx:93
+#: src/components/nav/NavHoverMenu.tsx:103
+msgid "Get started"
+msgstr ""
+
+#: src/components/nav/NavHoverMenu.tsx:96
+msgid "Overview over high-level objects, functions and possible usecases."
+msgstr ""
+
+#: src/components/nav/NavigationDrawer.tsx:59
+msgid "Navigation"
+msgstr ""
+
+#: src/components/nav/NavigationDrawer.tsx:62
+msgid "Pages"
+msgstr ""
+
+#: src/components/nav/NavigationDrawer.tsx:67
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:76
+msgid "Plugins"
+msgstr ""
+
+#: src/components/nav/NavigationDrawer.tsx:77
+msgid "Documentation"
+msgstr ""
+
+#: src/components/nav/NavigationDrawer.tsx:80
+msgid "About"
+msgstr ""
+
+#: src/components/nav/NotificationDrawer.tsx:71
+#: src/pages/Index/Settings/SystemSettings.tsx:101
+#: src/pages/Index/Settings/UserSettings.tsx:94
+#: src/pages/Notifications.tsx:28
+#: src/pages/Notifications.tsx:100
+msgid "Notifications"
+msgstr ""
+
+#: src/components/nav/NotificationDrawer.tsx:88
+msgid "You have no unread notifications."
+msgstr ""
+
+#: src/components/nav/NotificationDrawer.tsx:123
+#: src/pages/Notifications.tsx:36
+msgid "Mark as read"
+msgstr ""
+
+#: src/components/nav/PartCategoryTree.tsx:80
+#: src/components/render/ModelType.tsx:49
+#: src/pages/Index/Settings/SystemSettings.tsx:165
+#: src/pages/part/CategoryDetail.tsx:60
+msgid "Part Categories"
+msgstr ""
+
+#: src/components/nav/SearchDrawer.tsx:76
+msgid "results"
+msgstr ""
+
+#: src/components/nav/SearchDrawer.tsx:337
+msgid "Enter search text"
+msgstr ""
+
+#: src/components/nav/SearchDrawer.tsx:364
+msgid "Search Options"
+msgstr ""
+
+#: src/components/nav/SearchDrawer.tsx:367
+msgid "Regex search"
+msgstr ""
+
+#: src/components/nav/SearchDrawer.tsx:377
+msgid "Whole word search"
+msgstr ""
+
+#: src/components/nav/SearchDrawer.tsx:415
+msgid "An error occurred during search query"
+msgstr ""
+
+#: src/components/nav/SearchDrawer.tsx:426
+msgid "No results"
+msgstr ""
+
+#: src/components/nav/SearchDrawer.tsx:429
+msgid "No results available for search query"
+msgstr ""
+
+#: src/components/nav/StockLocationTree.tsx:80
+#: src/components/render/ModelType.tsx:63
+#: src/pages/stock/LocationDetail.tsx:48
+msgid "Stock Locations"
+msgstr ""
+
+#: src/components/render/Instance.tsx:135
+msgid "Unknown model: {model}"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:20
+#: src/components/tables/bom/BomTable.tsx:61
+#: src/components/tables/build/BuildOrderTable.tsx:39
+#: src/components/tables/part/PartParameterTable.tsx:34
+#: src/components/tables/part/PartTable.tsx:26
+#: src/components/tables/part/RelatedPartTable.tsx:41
+#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:96
+#: src/components/tables/purchasing/SupplierPartTable.tsx:35
+#: src/components/tables/stock/StockItemTable.tsx:26
+#: src/pages/part/PartDetail.tsx:328
+msgid "Part"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:21
+#: src/components/tables/part/PartCategoryTable.tsx:46
+#: src/defaults/links.tsx:27
+#: src/defaults/menuItems.tsx:33
+#: src/pages/Index/Settings/SystemSettings.tsx:170
+#: src/pages/part/CategoryDetail.tsx:46
+#: src/pages/part/CategoryDetail.tsx:82
+#: src/pages/part/PartDetail.tsx:243
+msgid "Parts"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:27
+msgid "Part Parameter Template"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:28
+msgid "Part Parameter Templates"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:34
+#: src/components/tables/purchasing/SupplierPartTable.tsx:63
+msgid "Supplier Part"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:35
+msgid "Supplier Parts"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:41
+msgid "Manufacturer Part"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:42
+msgid "Manufacturer Parts"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:48
+#: src/pages/part/CategoryDetail.tsx:102
+msgid "Part Category"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:55
+#: src/pages/stock/StockDetail.tsx:220
+msgid "Stock Item"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:56
+#: src/components/tables/stock/StockLocationTable.tsx:62
+#: src/pages/company/CompanyDetail.tsx:99
+#: src/pages/stock/LocationDetail.tsx:36
+#: src/pages/stock/LocationDetail.tsx:82
+msgid "Stock Items"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:62
+msgid "Stock Location"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:69
+msgid "Stock History"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:70
+msgid "Stock Histories"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:74
+#: src/defaults/links.tsx:29
+#: src/defaults/menuItems.tsx:43
+msgid "Build"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:75
+msgid "Builds"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:81
+#: src/pages/company/CompanyDetail.tsx:199
+msgid "Company"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:82
+msgid "Companies"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:88
+#: src/components/tables/ColumnRenderers.tsx:66
+#: src/components/tables/TableHoverCard.tsx:58
+#: src/components/tables/settings/ProjectCodeTable.tsx:33
+msgid "Project Code"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:89
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:52
+msgid "Project Codes"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:95
+#: src/pages/purchasing/PurchaseOrderDetail.tsx:131
+msgid "Purchase Order"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:96
+#: src/pages/Index/Settings/SystemSettings.tsx:234
+#: src/pages/company/CompanyDetail.tsx:90
+#: src/pages/part/PartDetail.tsx:175
+#: src/pages/purchasing/PurchasingIndex.tsx:20
+msgid "Purchase Orders"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:102
+msgid "Purchase Order Line"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:103
+msgid "Purchase Order Lines"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:107
+#: src/components/tables/sales/SalesOrderTable.tsx:58
+#: src/pages/sales/SalesOrderDetail.tsx:96
+msgid "Sales Order"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:108
+#: src/pages/Index/Settings/SystemSettings.tsx:247
+#: src/pages/company/CompanyDetail.tsx:108
+#: src/pages/part/PartDetail.tsx:181
+#: src/pages/sales/SalesIndex.tsx:21
+msgid "Sales Orders"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:114
+msgid "Sales Order Shipment"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:115
+msgid "Sales Order Shipments"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:121
+#: src/components/tables/sales/ReturnOrderTable.tsx:55
+#: src/pages/sales/ReturnOrderDetail.tsx:68
+msgid "Return Order"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:122
+#: src/pages/company/CompanyDetail.tsx:117
+#: src/pages/sales/SalesIndex.tsx:27
+msgid "Return Orders"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:128
+#: src/components/tables/company/AddressTable.tsx:49
+msgid "Address"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:129
+#: src/pages/company/CompanyDetail.tsx:138
+msgid "Addresses"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:135
+msgid "Contact"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:136
+#: src/pages/company/CompanyDetail.tsx:132
+msgid "Contacts"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:142
+msgid "Owner"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:143
+msgid "Owners"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:149
+msgid "User"
+msgstr ""
+
+#: src/components/render/ModelType.tsx:150
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:46
+#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13
+msgid "Users"
+msgstr ""
+
+#: src/components/render/Order.tsx:85
+msgid "Shipment"
+msgstr ""
+
+#: src/components/render/Stock.tsx:26
+msgid "Serial Number"
+msgstr ""
+
+#: src/components/render/Stock.tsx:28
+#: src/components/tables/bom/BomTable.tsx:102
+#: src/components/tables/bom/UsedInTable.tsx:68
+#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:122
+#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:150
+#: src/pages/build/BuildDetail.tsx:75
+msgid "Quantity"
+msgstr ""
+
+#: src/components/settings/SettingItem.tsx:43
+#: src/components/settings/SettingItem.tsx:96
+msgid "Setting updated"
+msgstr ""
+
+#: src/components/settings/SettingItem.tsx:44
+#: src/components/settings/SettingItem.tsx:97
+msgid "{0} updated successfully"
+msgstr ""
+
+#: src/components/settings/SettingItem.tsx:52
+msgid "Error editing setting"
+msgstr ""
+
+#: src/components/settings/SettingItem.tsx:89
+msgid "Edit Setting"
+msgstr ""
+
+#: src/components/tables/ColumnRenderers.tsx:33
+#: src/components/tables/bom/BomTable.tsx:93
+#: src/components/tables/build/BuildOrderTable.tsx:57
+#: src/components/tables/part/PartParameterTable.tsx:65
+#: src/components/tables/part/PartParameterTemplateTable.tsx:61
+#: src/components/tables/part/RelatedPartTable.tsx:60
+#: src/components/tables/plugin/PluginListTable.tsx:160
+#: src/components/tables/plugin/PluginListTable.tsx:274
+#: src/components/tables/stock/StockItemTable.tsx:45
+msgid "Description"
+msgstr ""
+
+#: src/components/tables/ColumnRenderers.tsx:42
+#: src/components/tables/company/AddressTable.tsx:104
+msgid "Link"
+msgstr ""
+
+#: src/components/tables/ColumnRenderers.tsx:51
+#: src/pages/purchasing/PurchaseOrderDetail.tsx:60
+#: src/pages/sales/SalesOrderDetail.tsx:46
+msgid "Line Items"
+msgstr ""
+
+#: src/components/tables/ColumnRenderers.tsx:78
+#: src/components/tables/build/BuildOrderTable.tsx:115
+#: src/components/tables/purchasing/PurchaseOrderTable.tsx:41
+#: src/components/tables/sales/ReturnOrderTable.tsx:37
+#: src/components/tables/sales/SalesOrderTable.tsx:38
+#: src/components/tables/stock/StockItemTable.tsx:252
+msgid "Status"
+msgstr ""
+
+#: src/components/tables/ColumnRenderers.tsx:86
+msgid "Responsible"
+msgstr ""
+
+#: src/components/tables/ColumnRenderers.tsx:96
+msgid "Target Date"
+msgstr ""
+
+#: src/components/tables/ColumnRenderers.tsx:106
+msgid "Creation Date"
+msgstr ""
+
+#: src/components/tables/ColumnRenderers.tsx:115
+msgid "Shipment Date"
+msgstr ""
+
+#: src/components/tables/ColumnRenderers.tsx:136
+#: src/components/tables/settings/CurrencyTable.tsx:23
+msgid "Currency"
+msgstr ""
+
+#: src/components/tables/ColumnRenderers.tsx:150
+msgid "Total Price"
+msgstr ""
+
+#: src/components/tables/ColumnSelect.tsx:17
+#: src/components/tables/ColumnSelect.tsx:24
+msgid "Select Columns"
+msgstr ""
+
+#: src/components/tables/DownloadAction.tsx:12
+msgid "CSV"
+msgstr ""
+
+#: src/components/tables/DownloadAction.tsx:13
+msgid "TSV"
+msgstr ""
+
+#: src/components/tables/DownloadAction.tsx:14
+msgid "Excel"
+msgstr ""
+
+#: src/components/tables/DownloadAction.tsx:22
+msgid "Download selected data"
+msgstr ""
+
+#: src/components/tables/Filter.tsx:88
+#: src/components/tables/build/BuildOrderTable.tsx:128
+msgid "Assigned to me"
+msgstr ""
+
+#: src/components/tables/Filter.tsx:89
+#: src/components/tables/build/BuildOrderTable.tsx:129
+msgid "Show orders assigned to me"
+msgstr ""
+
+#: src/components/tables/Filter.tsx:96
+msgid "Outstanding"
+msgstr ""
+
+#: src/components/tables/Filter.tsx:97
+msgid "Show outstanding orders"
+msgstr ""
+
+#: src/components/tables/Filter.tsx:104
+#: src/components/tables/build/BuildOrderTable.tsx:122
+msgid "Overdue"
+msgstr ""
+
+#: src/components/tables/Filter.tsx:105
+msgid "Show overdue orders"
+msgstr ""
+
+#: src/components/tables/FilterSelectDrawer.tsx:51
+msgid "Remove filter"
+msgstr ""
+
+#: src/components/tables/FilterSelectDrawer.tsx:145
+msgid "Select filter"
+msgstr ""
+
+#: src/components/tables/FilterSelectDrawer.tsx:146
+msgid "Filter"
+msgstr ""
+
+#: src/components/tables/FilterSelectDrawer.tsx:153
+#: src/components/tables/part/PartParameterTable.tsx:72
+msgid "Value"
+msgstr ""
+
+#: src/components/tables/FilterSelectDrawer.tsx:154
+msgid "Select filter value"
+msgstr ""
+
+#: src/components/tables/FilterSelectDrawer.tsx:188
+msgid "Table Filters"
+msgstr ""
+
+#: src/components/tables/FilterSelectDrawer.tsx:209
+#: src/components/tables/plugin/PluginListTable.tsx:333
+#: src/contexts/ThemeContext.tsx:64
+#: src/functions/forms.tsx:202
+#: src/hooks/UseForm.tsx:38
+msgid "Cancel"
+msgstr ""
+
+#: src/components/tables/FilterSelectDrawer.tsx:219
+msgid "Add Filter"
+msgstr ""
+
+#: src/components/tables/FilterSelectDrawer.tsx:228
+msgid "Clear Filters"
+msgstr ""
+
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
+msgid "No records found"
+msgstr ""
+
+#: src/components/tables/InvenTreeTable.tsx:302
+msgid "Server returned incorrect data type"
+msgstr ""
+
+#: src/components/tables/InvenTreeTable.tsx:310
+msgid "Bad request"
+msgstr ""
+
+#: src/components/tables/InvenTreeTable.tsx:313
+msgid "Unauthorized"
+msgstr ""
+
+#: src/components/tables/InvenTreeTable.tsx:316
+msgid "Forbidden"
+msgstr ""
+
+#: src/components/tables/InvenTreeTable.tsx:319
+msgid "Not found"
+msgstr ""
+
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
+msgid "Barcode actions"
+msgstr ""
+
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
+msgid "Print actions"
+msgstr ""
+
+#: src/components/tables/InvenTreeTable.tsx:400
+msgid "Refresh data"
+msgstr ""
+
+#: src/components/tables/InvenTreeTable.tsx:419
+msgid "Table filters"
+msgstr ""
+
+#: src/components/tables/RowActions.tsx:149
+msgid "Actions"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:70
+msgid "This BOM item is defined for a different parent"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:85
+msgid "Part Information"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:98
+#: src/components/tables/bom/UsedInTable.tsx:76
+#: src/components/tables/build/BuildOrderTable.tsx:33
+#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:117
+#: src/components/tables/purchasing/PurchaseOrderTable.tsx:61
+msgid "Reference"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:110
+msgid "Substitutes"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:124
+#: src/components/tables/bom/BomTable.tsx:273
+#: src/components/tables/bom/UsedInTable.tsx:91
+msgid "Optional"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:128
+#: src/components/tables/bom/BomTable.tsx:278
+msgid "Consumable"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:132
+msgid "Allow Variants"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:136
+#: src/components/tables/bom/BomTable.tsx:268
+#: src/components/tables/bom/UsedInTable.tsx:86
+msgid "Gets Inherited"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:142
+#: src/components/tables/part/PartTable.tsx:156
+msgid "Price Range"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:156
+#: src/components/tables/part/PartTable.tsx:121
+#: src/components/tables/stock/StockItemTable.tsx:147
+#: src/components/tables/stock/StockItemTable.tsx:268
+msgid "Available"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:167
+#: src/components/tables/part/PartTable.tsx:129
+msgid "No stock"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:175
+msgid "Includes substitute stock"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:184
+msgid "Includes variant stock"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:192
+msgid "On order"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:200
+#: src/components/tables/part/PartTable.tsx:97
+msgid "Building"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:209
+#: src/components/tables/part/PartTable.tsx:148
+#: src/components/tables/stock/StockItemTable.tsx:183
+msgid "Stock Information"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:216
+msgid "Can Build"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:220
+msgid "Consumable item"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:233
+#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:213
+#: src/components/tables/purchasing/SupplierPartTable.tsx:130
+#: src/pages/build/BuildDetail.tsx:167
+#: src/pages/company/CompanyDetail.tsx:156
+#: src/pages/part/PartDetail.tsx:228
+#: src/pages/purchasing/PurchaseOrderDetail.tsx:90
+#: src/pages/sales/ReturnOrderDetail.tsx:50
+#: src/pages/sales/SalesOrderDetail.tsx:78
+#: src/pages/stock/StockDetail.tsx:120
+msgid "Notes"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:243
+msgid "Trackable Part"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:244
+msgid "Show trackable items"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:248
+#: src/components/tables/bom/UsedInTable.tsx:31
+msgid "Assembled Part"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:249
+msgid "Show asssmbled items"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:253
+msgid "Has Available Stock"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:254
+msgid "Show items with available stock"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:258
+#: src/components/tables/part/PartTable.tsx:91
+msgid "On Order"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:259
+msgid "Show items on order"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:263
+msgid "Validated"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:264
+msgid "Show validated items"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:269
+#: src/components/tables/bom/UsedInTable.tsx:87
+msgid "Show inherited items"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:274
+#: src/components/tables/bom/UsedInTable.tsx:92
+msgid "Show optional items"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:279
+msgid "Show consumable items"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:283
+msgid "Has Pricing"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:284
+msgid "Show items with pricing"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:295
+msgid "View BOM"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:306
+msgid "Validate BOM line"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:314
+msgid "Edit Substitutes"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:328
+msgid "Edit Bom Item"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:330
+msgid "Bom item updated"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:345
+msgid "Delete Bom Item"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:346
+msgid "Bom item deleted"
+msgstr ""
+
+#: src/components/tables/bom/BomTable.tsx:348
+msgid "Are you sure you want to remove this BOM item?"
+msgstr ""
+
+#: src/components/tables/bom/UsedInTable.tsx:50
+msgid "Required Part"
+msgstr ""
+
+#: src/components/tables/bom/UsedInTable.tsx:96
+#: src/components/tables/build/BuildOrderTable.tsx:110
+#: src/components/tables/part/PartTable.tsx:175
+#: src/components/tables/part/PartVariantTable.tsx:15
+#: src/components/tables/plugin/PluginListTable.tsx:178
+#: src/components/tables/plugin/PluginListTable.tsx:500
+#: src/components/tables/settings/UserTable.tsx:194
+#: src/components/tables/stock/StockItemTable.tsx:247
+msgid "Active"
+msgstr ""
+
+#: src/components/tables/bom/UsedInTable.tsx:97
+msgid "Show active assemblies"
+msgstr ""
+
+#: src/components/tables/bom/UsedInTable.tsx:101
+#: src/components/tables/part/PartTable.tsx:199
+#: src/components/tables/part/PartVariantTable.tsx:30
+msgid "Trackable"
+msgstr ""
+
+#: src/components/tables/bom/UsedInTable.tsx:102
+msgid "Show trackable assemblies"
+msgstr ""
+
+#: src/components/tables/build/BuildOrderTable.tsx:63
+msgid "Progress"
+msgstr ""
+
+#: src/components/tables/build/BuildOrderTable.tsx:76
+msgid "Priority"
+msgstr ""
+
+#: src/components/tables/build/BuildOrderTable.tsx:84
+msgid "Completed"
+msgstr ""
+
+#: src/components/tables/build/BuildOrderTable.tsx:90
+msgid "Issued By"
+msgstr ""
+
+#: src/components/tables/build/BuildOrderTable.tsx:111
+msgid "Show active orders"
+msgstr ""
+
+#: src/components/tables/build/BuildOrderTable.tsx:116
+#: src/components/tables/purchasing/PurchaseOrderTable.tsx:42
+#: src/components/tables/sales/ReturnOrderTable.tsx:38
+#: src/components/tables/sales/SalesOrderTable.tsx:39
+msgid "Filter by order status"
+msgstr ""
+
+#: src/components/tables/build/BuildOrderTable.tsx:123
+msgid "Show overdue status"
+msgstr ""
+
+#: src/components/tables/company/AddressTable.tsx:42
+#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143
+msgid "Primary"
+msgstr ""
+
+#: src/components/tables/company/AddressTable.tsx:68
+msgid "Postal Code"
+msgstr ""
+
+#: src/components/tables/company/AddressTable.tsx:74
+msgid "City"
+msgstr ""
+
+#: src/components/tables/company/AddressTable.tsx:80
+msgid "State / Province"
+msgstr ""
+
+#: src/components/tables/company/AddressTable.tsx:86
+msgid "Country"
+msgstr ""
+
+#: src/components/tables/company/AddressTable.tsx:92
+msgid "Courier Notes"
+msgstr ""
+
+#: src/components/tables/company/AddressTable.tsx:98
+msgid "Internal Notes"
+msgstr ""
+
+#: src/components/tables/company/AddressTable.tsx:128
+msgid "Edit Address"
+msgstr ""
+
+#: src/components/tables/company/AddressTable.tsx:130
+msgid "Address updated"
+msgstr ""
+
+#: src/components/tables/company/AddressTable.tsx:141
+msgid "Delete Address"
+msgstr ""
+
+#: src/components/tables/company/AddressTable.tsx:142
+msgid "Address deleted"
+msgstr ""
+
+#: src/components/tables/company/AddressTable.tsx:144
+msgid "Are you sure you want to delete this address?"
+msgstr ""
+
+#: src/components/tables/company/AddressTable.tsx:160
+#: src/components/tables/company/AddressTable.tsx:174
+msgid "Add Address"
+msgstr ""
+
+#: src/components/tables/company/AddressTable.tsx:162
+msgid "Address created"
+msgstr ""
+
+#: src/components/tables/company/CompanyTable.tsx:32
+msgid "Company Name"
+msgstr ""
+
+#: src/components/tables/company/CompanyTable.tsx:50
+#: src/defaults/links.tsx:10
+msgid "Website"
+msgstr ""
+
+#: src/components/tables/company/ContactTable.tsx:41
+msgid "Phone"
+msgstr ""
+
+#: src/components/tables/company/ContactTable.tsx:53
+msgid "Role"
+msgstr ""
+
+#: src/components/tables/company/ContactTable.tsx:76
+msgid "Edit Contact"
+msgstr ""
+
+#: src/components/tables/company/ContactTable.tsx:78
+msgid "Contact updated"
+msgstr ""
+
+#: src/components/tables/company/ContactTable.tsx:89
+msgid "Delete Contact"
+msgstr ""
+
+#: src/components/tables/company/ContactTable.tsx:90
+msgid "Contact deleted"
+msgstr ""
+
+#: src/components/tables/company/ContactTable.tsx:92
+msgid "Are you sure you want to delete this contact?"
+msgstr ""
+
+#: src/components/tables/company/ContactTable.tsx:108
+msgid "Create Contact"
+msgstr ""
+
+#: src/components/tables/company/ContactTable.tsx:110
+msgid "Contact created"
+msgstr ""
+
+#: src/components/tables/company/ContactTable.tsx:122
+msgid "Add contact"
+msgstr ""
+
+#: src/components/tables/general/AttachmentTable.tsx:30
+msgid "Attachment"
+msgstr ""
+
+#: src/components/tables/general/AttachmentTable.tsx:47
+msgid "Comment"
+msgstr ""
+
+#: src/components/tables/general/AttachmentTable.tsx:56
+msgid "Uploaded"
+msgstr ""
+
+#: src/components/tables/general/AttachmentTable.tsx:160
+msgid "File uploaded"
+msgstr ""
+
+#: src/components/tables/general/AttachmentTable.tsx:161
+msgid "File {0} uploaded successfully"
+msgstr ""
+
+#: src/components/tables/general/AttachmentTable.tsx:172
+msgid "Upload Error"
+msgstr ""
+
+#: src/components/tables/general/AttachmentTable.tsx:173
+msgid "File could not be uploaded"
+msgstr ""
+
+#: src/components/tables/general/AttachmentTable.tsx:186
+msgid "Add attachment"
+msgstr ""
+
+#: src/components/tables/general/AttachmentTable.tsx:205
+msgid "Add external link"
+msgstr ""
+
+#: src/components/tables/general/AttachmentTable.tsx:236
+msgid "No attachments found"
+msgstr ""
+
+#: src/components/tables/general/AttachmentTable.tsx:251
+msgid "Upload attachment"
+msgstr ""
+
+#: src/components/tables/notifications/NotificationsTable.tsx:24
+msgid "Age"
+msgstr ""
+
+#: src/components/tables/notifications/NotificationsTable.tsx:29
+#: src/components/tables/part/PartTable.tsx:50
+msgid "Category"
+msgstr ""
+
+#: src/components/tables/notifications/NotificationsTable.tsx:34
+msgid "Notification"
+msgstr ""
+
+#: src/components/tables/notifications/NotificationsTable.tsx:38
+#: src/components/tables/plugin/PluginErrorTable.tsx:37
+msgid "Message"
+msgstr ""
+
+#: src/components/tables/part/PartCategoryTable.tsx:33
+#: src/components/tables/stock/StockLocationTable.tsx:57
+msgid "Path"
+msgstr ""
+
+#: src/components/tables/part/PartCategoryTable.tsx:38
+#: src/components/tables/part/PartCategoryTable.tsx:61
+#: src/components/tables/stock/StockLocationTable.tsx:31
+#: src/components/tables/stock/StockLocationTable.tsx:68
+msgid "Structural"
+msgstr ""
+
+#: src/components/tables/part/PartCategoryTable.tsx:56
+#: src/components/tables/part/PartTable.tsx:187
+msgid "Include Subcategories"
+msgstr ""
+
+#: src/components/tables/part/PartCategoryTable.tsx:57
+msgid "Include subcategories in results"
+msgstr ""
+
+#: src/components/tables/part/PartCategoryTable.tsx:62
+msgid "Show structural categories"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTable.tsx:54
+msgid "Parameter"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTable.tsx:93
+#: src/components/tables/part/PartParameterTemplateTable.tsx:56
+#: src/components/tables/part/PartTable.tsx:45
+msgid "Units"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
+msgid "Edit Part Parameter"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTable.tsx:127
+msgid "Part parameter updated"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
+msgid "Delete Part Parameter"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTable.tsx:143
+msgid "Part parameter deleted"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTable.tsx:145
+msgid "Are you sure you want to remove this parameter?"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTable.tsx:163
+msgid "Add Part Parameter"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTable.tsx:172
+msgid "Part parameter added"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTable.tsx:183
+msgid "Add parameter"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTable.tsx:200
+#: src/components/tables/stock/StockItemTable.tsx:293
+msgid "Include Variants"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTemplateTable.tsx:30
+#: src/components/tables/part/PartParameterTemplateTable.tsx:66
+msgid "Checkbox"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTemplateTable.tsx:31
+msgid "Show checkbox templates"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTemplateTable.tsx:35
+msgid "Has choices"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTemplateTable.tsx:36
+msgid "Show templates with choices"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTemplateTable.tsx:40
+#: src/components/tables/part/PartTable.tsx:205
+msgid "Has Units"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTemplateTable.tsx:41
+msgid "Show templates with units"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTemplateTable.tsx:70
+msgid "Choices"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTemplateTable.tsx:85
+msgid "Edit Parameter Template"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTemplateTable.tsx:87
+msgid "Parameter template updated"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTemplateTable.tsx:98
+msgid "Delete Parameter Template"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTemplateTable.tsx:99
+msgid "Parameter template deleted"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTemplateTable.tsx:101
+msgid "Are you sure you want to remove this parameter template?"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTemplateTable.tsx:113
+msgid "Create Parameter Template"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTemplateTable.tsx:115
+msgid "Parameter template created"
+msgstr ""
+
+#: src/components/tables/part/PartParameterTemplateTable.tsx:123
+msgid "Add parameter template"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:39
+msgid "IPN"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:62
+#: src/components/tables/stock/StockItemTable.tsx:50
+#: src/defaults/links.tsx:28
+#: src/defaults/menuItems.tsx:38
+#: src/pages/Index/Settings/SystemSettings.tsx:201
+#: src/pages/part/PartDetail.tsx:98
+#: src/pages/stock/LocationDetail.tsx:63
+#: src/pages/stock/StockDetail.tsx:135
+msgid "Stock"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:82
+msgid "Minimum stock"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:104
+msgid "Build Order Allocations"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:113
+msgid "Sales Order Allocations"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:176
+msgid "Filter by part active status"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:181
+#: src/components/tables/stock/StockItemTable.tsx:258
+msgid "Assembly"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:182
+msgid "Filter by assembly attribute"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:188
+msgid "Include parts in subcategories"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:193
+msgid "Component"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:194
+msgid "Filter by component attribute"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:200
+msgid "Filter by trackable attribute"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:206
+msgid "Filter by parts which have units"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:211
+msgid "Has IPN"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:212
+msgid "Filter by parts which have an internal part number"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:217
+msgid "Has Stock"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:218
+msgid "Filter by parts which have stock"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:223
+#: src/defaults/dashboardItems.tsx:50
+msgid "Low Stock"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:224
+msgid "Filter by parts which have low stock"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:229
+msgid "Purchaseable"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:230
+msgid "Filter by parts which are purchaseable"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:235
+msgid "Salable"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:236
+msgid "Filter by parts which are salable"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:241
+#: src/components/tables/part/PartTable.tsx:245
+#: src/components/tables/part/PartVariantTable.tsx:25
+msgid "Virtual"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:242
+msgid "Filter by parts which are virtual"
+msgstr ""
+
+#: src/components/tables/part/PartTable.tsx:246
+msgid "Not Virtual"
+msgstr ""
+
+#: src/components/tables/part/PartVariantTable.tsx:16
+msgid "Show active variants"
+msgstr ""
+
+#: src/components/tables/part/PartVariantTable.tsx:20
+msgid "Template"
+msgstr ""
+
+#: src/components/tables/part/PartVariantTable.tsx:21
+msgid "Show template variants"
+msgstr ""
+
+#: src/components/tables/part/PartVariantTable.tsx:26
+msgid "Show virtual variants"
+msgstr ""
+
+#: src/components/tables/part/PartVariantTable.tsx:31
+msgid "Show trackable variants"
+msgstr ""
+
+#: src/components/tables/part/RelatedPartTable.tsx:71
+msgid "Add Related Part"
+msgstr ""
+
+#: src/components/tables/part/RelatedPartTable.tsx:79
+msgid "Related Part"
+msgstr ""
+
+#: src/components/tables/part/RelatedPartTable.tsx:82
+msgid "Related part added"
+msgstr ""
+
+#: src/components/tables/part/RelatedPartTable.tsx:92
+msgid "Add related part"
+msgstr ""
+
+#: src/components/tables/part/RelatedPartTable.tsx:113
+msgid "Delete Related Part"
+msgstr ""
+
+#: src/components/tables/part/RelatedPartTable.tsx:114
+msgid "Related part deleted"
+msgstr ""
+
+#: src/components/tables/part/RelatedPartTable.tsx:115
+msgid "Are you sure you want to remove this relationship?"
+msgstr ""
+
+#: src/components/tables/plugin/PluginErrorTable.tsx:29
+msgid "Stage"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:103
+msgid "Plugin with id {id} not found"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:105
+msgid "An error occurred while fetching plugin details"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:122
+msgid "Plugin Actions"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:126
+#: src/components/tables/plugin/PluginListTable.tsx:129
+msgid "Edit plugin"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:140
+#: src/components/tables/plugin/PluginListTable.tsx:141
+msgid "Reload"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:154
+msgid "Plugin information"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:165
+msgid "Author"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:170
+msgid "Date"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:186
+msgid "Package information"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:191
+msgid "Installation path"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:196
+#: src/components/tables/plugin/PluginListTable.tsx:505
+msgid "Builtin"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:207
+msgid "Plugin settings"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:224
+msgid "Plugin is active"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:230
+msgid "Plugin is inactive"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:237
+msgid "Plugin is not installed"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:259
+msgid "Plugin"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:281
+msgid "Description not available"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:306
+msgid "Activate Plugin"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:306
+msgid "Deactivate Plugin"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:315
+msgid "Confirm plugin activation"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:316
+msgid "Confirm plugin deactivation"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:322
+msgid "The following plugin will be activated"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:323
+msgid "The following plugin will be deactivated"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:334
+msgid "Confirm"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:344
+msgid "Activating plugin"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:344
+msgid "Deactivating plugin"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:354
+msgid "Plugin updated"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:356
+msgid "The plugin was activated"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:357
+msgid "The plugin was deactivated"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:365
+msgid "Error updating plugin"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:382
+msgid "Deactivate"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:391
+msgid "Activate"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:405
+msgid "Install plugin"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:413
+msgid "Install"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:417
+msgid "Plugin installed successfully"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:438
+msgid "Plugins reloaded"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:439
+msgid "Plugins were reloaded successfully"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:455
+msgid "Reload Plugins"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:464
+msgid "Install Plugin"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:477
+msgid "Plugin detail"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:510
+msgid "Sample"
+msgstr ""
+
+#: src/components/tables/plugin/PluginListTable.tsx:515
+#: src/components/tables/stock/StockItemTable.tsx:298
+msgid "Installed"
+msgstr ""
+
+#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:53
+msgid "Receive line item"
+msgstr ""
+
+#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:74
+msgid "Edit Line Item"
+msgstr ""
+
+#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:77
+msgid "Line item updated"
+msgstr ""
+
+#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:110
+msgid "Part Description"
+msgstr ""
+
+#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:135
+#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:171
+#: src/components/tables/purchasing/SupplierPartTable.tsx:102
+#: src/components/tables/purchasing/SupplierPartTable.tsx:122
+msgid "Pack Quantity"
+msgstr ""
+
+#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:141
+msgid "Total Quantity"
+msgstr ""
+
+#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:157
+msgid "Received"
+msgstr ""
+
+#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:176
+msgid "Supplier Code"
+msgstr ""
+
+#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:183
+msgid "Supplier Link"
+msgstr ""
+
+#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:190
+msgid "Manufacturer Code"
+msgstr ""
+
+#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:198
+msgid "Unit Price"
+msgstr ""
+
+#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:204
+msgid "Destination"
+msgstr ""
+
+#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:222
+msgid "Add Line Item"
+msgstr ""
+
+#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:228
+msgid "Line item added"
+msgstr ""
+
+#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:237
+msgid "Add line item"
+msgstr ""
+
+#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:243
+msgid "Receive items"
+msgstr ""
+
+#: src/components/tables/purchasing/PurchaseOrderTable.tsx:69
+#: src/components/tables/purchasing/SupplierPartTable.tsx:48
+#: src/pages/company/SupplierDetail.tsx:8
+msgid "Supplier"
+msgstr ""
+
+#: src/components/tables/purchasing/PurchaseOrderTable.tsx:85
+msgid "Supplier Reference"
+msgstr ""
+
+#: src/components/tables/purchasing/SupplierPartTable.tsx:71
+#: src/pages/company/ManufacturerDetail.tsx:8
+msgid "Manufacturer"
+msgstr ""
+
+#: src/components/tables/purchasing/SupplierPartTable.tsx:87
+msgid "MPN"
+msgstr ""
+
+#: src/components/tables/purchasing/SupplierPartTable.tsx:92
+#: src/components/tables/stock/StockItemTable.tsx:283
+msgid "In Stock"
+msgstr ""
+
+#: src/components/tables/purchasing/SupplierPartTable.tsx:97
+msgid "Packaging"
+msgstr ""
+
+#: src/components/tables/purchasing/SupplierPartTable.tsx:113
+msgid "Base units"
+msgstr ""
+
+#: src/components/tables/purchasing/SupplierPartTable.tsx:135
+msgid "Availability"
+msgstr ""
+
+#: src/components/tables/purchasing/SupplierPartTable.tsx:144
+msgid "Updated"
+msgstr ""
+
+#: src/components/tables/purchasing/SupplierPartTable.tsx:163
+msgid "Add Supplier Part"
+msgstr ""
+
+#: src/components/tables/purchasing/SupplierPartTable.tsx:166
+msgid "Supplier part created"
+msgstr ""
+
+#: src/components/tables/purchasing/SupplierPartTable.tsx:175
+msgid "Add supplier part"
+msgstr ""
+
+#: src/components/tables/purchasing/SupplierPartTable.tsx:196
+msgid "Edit Supplier Part"
+msgstr ""
+
+#: src/components/tables/purchasing/SupplierPartTable.tsx:199
+msgid "Supplier part updated"
+msgstr ""
+
+#: src/components/tables/purchasing/SupplierPartTable.tsx:210
+msgid "Delete Supplier Part"
+msgstr ""
+
+#: src/components/tables/purchasing/SupplierPartTable.tsx:211
+msgid "Supplier part deleted"
+msgstr ""
+
+#: src/components/tables/purchasing/SupplierPartTable.tsx:213
+msgid "Are you sure you want to remove this supplier part?"
+msgstr ""
+
+#: src/components/tables/sales/ReturnOrderTable.tsx:61
+#: src/components/tables/sales/SalesOrderTable.tsx:65
+#: src/pages/company/CustomerDetail.tsx:8
+msgid "Customer"
+msgstr ""
+
+#: src/components/tables/sales/ReturnOrderTable.tsx:77
+#: src/components/tables/sales/SalesOrderTable.tsx:81
+msgid "Customer Reference"
+msgstr ""
+
+#: src/components/tables/sales/ReturnOrderTable.tsx:88
+msgid "Total Cost"
+msgstr ""
+
+#: src/components/tables/settings/CurrencyTable.tsx:28
+msgid "Rate"
+msgstr ""
+
+#: src/components/tables/settings/CurrencyTable.tsx:40
+msgid "Exchange rates updated"
+msgstr ""
+
+#: src/components/tables/settings/CurrencyTable.tsx:46
+msgid "Exchange rate update error"
+msgstr ""
+
+#: src/components/tables/settings/CurrencyTable.tsx:57
+msgid "Refresh currency exchange rates"
+msgstr ""
+
+#: src/components/tables/settings/CustomUnitsTable.tsx:37
+msgid "Definition"
+msgstr ""
+
+#: src/components/tables/settings/CustomUnitsTable.tsx:43
+msgid "Symbol"
+msgstr ""
+
+#: src/components/tables/settings/CustomUnitsTable.tsx:59
+msgid "Edit custom unit"
+msgstr ""
+
+#: src/components/tables/settings/CustomUnitsTable.tsx:66
+msgid "Custom unit updated"
+msgstr ""
+
+#: src/components/tables/settings/CustomUnitsTable.tsx:76
+msgid "Delete custom unit"
+msgstr ""
+
+#: src/components/tables/settings/CustomUnitsTable.tsx:77
+msgid "Custom unit deleted"
+msgstr ""
+
+#: src/components/tables/settings/CustomUnitsTable.tsx:79
+msgid "Are you sure you want to remove this custom unit?"
+msgstr ""
+
+#: src/components/tables/settings/CustomUnitsTable.tsx:91
+#: src/components/tables/settings/CustomUnitsTable.tsx:107
+msgid "Add custom unit"
+msgstr ""
+
+#: src/components/tables/settings/CustomUnitsTable.tsx:97
+msgid "Custom unit created"
+msgstr ""
+
+#: src/components/tables/settings/GroupTable.tsx:48
+msgid "Group with id {id} not found"
+msgstr ""
+
+#: src/components/tables/settings/GroupTable.tsx:50
+msgid "An error occurred while fetching group details"
+msgstr ""
+
+#: src/components/tables/settings/GroupTable.tsx:74
+msgid "Permission set"
+msgstr ""
+
+#: src/components/tables/settings/GroupTable.tsx:115
+msgid "Delete group"
+msgstr ""
+
+#: src/components/tables/settings/GroupTable.tsx:116
+msgid "Group deleted"
+msgstr ""
+
+#: src/components/tables/settings/GroupTable.tsx:118
+msgid "Are you sure you want to delete this group?"
+msgstr ""
+
+#: src/components/tables/settings/GroupTable.tsx:128
+#: src/components/tables/settings/GroupTable.tsx:142
+msgid "Add group"
+msgstr ""
+
+#: src/components/tables/settings/GroupTable.tsx:131
+msgid "Added group"
+msgstr ""
+
+#: src/components/tables/settings/GroupTable.tsx:152
+msgid "Edit group"
+msgstr ""
+
+#: src/components/tables/settings/ProjectCodeTable.tsx:49
+msgid "Edit project code"
+msgstr ""
+
+#: src/components/tables/settings/ProjectCodeTable.tsx:56
+msgid "Project code updated"
+msgstr ""
+
+#: src/components/tables/settings/ProjectCodeTable.tsx:66
+msgid "Delete project code"
+msgstr ""
+
+#: src/components/tables/settings/ProjectCodeTable.tsx:67
+msgid "Project code deleted"
+msgstr ""
+
+#: src/components/tables/settings/ProjectCodeTable.tsx:69
+msgid "Are you sure you want to remove this project code?"
+msgstr ""
+
+#: src/components/tables/settings/ProjectCodeTable.tsx:81
+#: src/components/tables/settings/ProjectCodeTable.tsx:96
+msgid "Add project code"
+msgstr ""
+
+#: src/components/tables/settings/ProjectCodeTable.tsx:88
+msgid "Added project code"
+msgstr ""
+
+#: src/components/tables/settings/UserTable.tsx:66
+msgid "User with id {id} not found"
+msgstr ""
+
+#: src/components/tables/settings/UserTable.tsx:68
+msgid "An error occurred while fetching user details"
+msgstr ""
+
+#: src/components/tables/settings/UserTable.tsx:86
+msgid "Is Active"
+msgstr ""
+
+#: src/components/tables/settings/UserTable.tsx:87
+msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts."
+msgstr ""
+
+#: src/components/tables/settings/UserTable.tsx:91
+msgid "Is Staff"
+msgstr ""
+
+#: src/components/tables/settings/UserTable.tsx:92
+msgid "Designates whether the user can log into the django admin site."
+msgstr ""
+
+#: src/components/tables/settings/UserTable.tsx:96
+msgid "Is Superuser"
+msgstr ""
+
+#: src/components/tables/settings/UserTable.tsx:97
+msgid "Designates that this user has all permissions without explicitly assigning them."
+msgstr ""
+
+#: src/components/tables/settings/UserTable.tsx:103
+#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:19
+msgid "Info"
+msgstr ""
+
+#: src/components/tables/settings/UserTable.tsx:107
+msgid "You cannot edit the rights for the currently logged-in user."
+msgstr ""
+
+#: src/components/tables/settings/UserTable.tsx:121
+#: src/components/tables/settings/UserTable.tsx:179
+#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18
+msgid "Groups"
+msgstr ""
+
+#: src/components/tables/settings/UserTable.tsx:133
+msgid "No groups"
+msgstr ""
+
+#: src/components/tables/settings/UserTable.tsx:168
+msgid "First Name"
+msgstr ""
+
+#: src/components/tables/settings/UserTable.tsx:173
+msgid "Last Name"
+msgstr ""
+
+#: src/components/tables/settings/UserTable.tsx:186
+msgid "Staff"
+msgstr ""
+
+#: src/components/tables/settings/UserTable.tsx:190
+msgid "Superuser"
+msgstr ""
+
+#: src/components/tables/settings/UserTable.tsx:209
+msgid "Delete user"
+msgstr ""
+
+#: src/components/tables/settings/UserTable.tsx:210
+msgid "User deleted"
+msgstr ""
+
+#: src/components/tables/settings/UserTable.tsx:212
+msgid "Are you sure you want to delete this user?"
+msgstr ""
+
+#: src/components/tables/settings/UserTable.tsx:222
+#: src/components/tables/settings/UserTable.tsx:238
+msgid "Add user"
+msgstr ""
+
+#: src/components/tables/settings/UserTable.tsx:230
+msgid "Added user"
+msgstr ""
+
+#: src/components/tables/settings/UserTable.tsx:247
+msgid "Edit user"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:71
+msgid "This stock item is in production"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:80
+msgid "This stock item has been assigned to a sales order"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:89
+msgid "This stock item has been assigned to a customer"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:98
+msgid "This stock item is installed in another stock item"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:107
+msgid "This stock item has been consumed by a build order"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:116
+msgid "This stock item has expired"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:120
+msgid "This stock item is stale"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:131
+msgid "This stock item is fully allocated"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:138
+msgid "This stock item is partially allocated"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:156
+msgid "No stock available"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:167
+msgid "This stock item has been depleted"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:194
+msgid "Batch"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:200
+msgid "Location"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:211
+msgid "Expiry Date"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:218
+msgid "Last Updated"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:227
+msgid "Purchase Price"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:248
+msgid "Show stock for active parts"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:253
+msgid "Filter by stock status"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:259
+msgid "Show stock for assmebled parts"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:263
+msgid "Allocated"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:264
+msgid "Show items which have been allocated"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:269
+msgid "Show items which are available"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:273
+#: src/components/tables/stock/StockLocationTable.tsx:26
+msgid "Include Sublocations"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:274
+msgid "Include stock in sublocations"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:278
+msgid "Depleted"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:279
+msgid "Show depleted stock items"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:284
+msgid "Show items which are in stock"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:288
+msgid "In Production"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:289
+msgid "Show items which are in production"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:294
+msgid "Include stock items for variant parts"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:299
+msgid "Show stock items which are installed in other items"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:303
+msgid "Sent to Customer"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:304
+msgid "Show items which have been sent to a customer"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:308
+msgid "Is Serialized"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:309
+msgid "Show items which have a serial number"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:316
+msgid "Has Batch Code"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:317
+msgid "Show items which have a batch code"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:322
+msgid "Tracked"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:323
+msgid "Show tracked items"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:327
+msgid "Has Purchase Price"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:328
+msgid "Show items which have a purchase price"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:336
+msgid "External Location"
+msgstr ""
+
+#: src/components/tables/stock/StockItemTable.tsx:337
+msgid "Show items in an external location"
+msgstr ""
+
+#: src/components/tables/stock/StockLocationTable.tsx:27
+msgid "Include sublocations in results"
+msgstr ""
+
+#: src/components/tables/stock/StockLocationTable.tsx:32
+msgid "Show structural locations"
+msgstr ""
+
+#: src/components/tables/stock/StockLocationTable.tsx:36
+#: src/components/tables/stock/StockLocationTable.tsx:75
+msgid "External"
+msgstr ""
+
+#: src/components/tables/stock/StockLocationTable.tsx:37
+msgid "Show external locations"
+msgstr ""
+
+#: src/components/tables/stock/StockLocationTable.tsx:41
+msgid "Has location type"
+msgstr ""
+
+#: src/components/tables/stock/StockLocationTable.tsx:82
+msgid "Location Type"
+msgstr ""
+
+#: src/components/widgets/DisplayWidget.tsx:11
+#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:16
+msgid "Display Settings"
+msgstr ""
+
+#: src/components/widgets/DisplayWidget.tsx:15
+#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:22
+msgid "Color Mode"
+msgstr ""
+
+#: src/components/widgets/DisplayWidget.tsx:21
+#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:32
+msgid "Language"
+msgstr ""
+
+#: src/components/widgets/FeedbackWidget.tsx:18
+msgid "Something is new: Platform UI"
+msgstr ""
+
+#: src/components/widgets/FeedbackWidget.tsx:20
+msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward."
+msgstr ""
+
+#: src/components/widgets/FeedbackWidget.tsx:31
+msgid "Provide Feedback"
+msgstr ""
+
+#: src/components/widgets/GetStartedWidget.tsx:11
+msgid "Getting started"
+msgstr ""
+
+#: src/components/widgets/MarkdownEditor.tsx:109
+msgid "Failed to upload image"
+msgstr ""
+
+#: src/components/widgets/MarkdownEditor.tsx:147
+msgid "Notes saved"
+msgstr ""
+
+#: src/components/widgets/MarkdownEditor.tsx:155
+msgid "Failed to save notes"
+msgstr ""
+
+#: src/components/widgets/WidgetLayout.tsx:180
+msgid "Layout"
+msgstr ""
+
+#: src/components/widgets/WidgetLayout.tsx:186
+msgid "Reset Layout"
+msgstr ""
+
+#: src/components/widgets/WidgetLayout.tsx:199
+msgid "Stop Edit"
+msgstr ""
+
+#: src/components/widgets/WidgetLayout.tsx:199
+msgid "Edit Layout"
+msgstr ""
+
+#: src/components/widgets/WidgetLayout.tsx:205
+msgid "Appearance"
+msgstr ""
+
+#: src/components/widgets/WidgetLayout.tsx:217
+msgid "Show Boxes"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:14
+msgid "Bulgarian"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:15
+msgid "Czech"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:16
+msgid "Danish"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:17
+msgid "German"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:18
+msgid "Greek"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:19
+msgid "English"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:20
+msgid "Spanish"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:21
+msgid "Spanish (Mexican)"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:22
+msgid "Farsi / Persian"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:23
+msgid "Finnish"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:24
+msgid "French"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:25
+msgid "Hebrew"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:26
+msgid "Hindi"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:27
+msgid "Hungarian"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:28
+msgid "Italian"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:29
+msgid "Japanese"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:30
+msgid "Korean"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:31
+msgid "Dutch"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:32
+msgid "Norwegian"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:33
+msgid "Polish"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:34
+msgid "Portuguese"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:35
+msgid "Portuguese (Brazilian)"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:36
+msgid "Russian"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:37
+msgid "Slovenian"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:38
+msgid "Swedish"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:39
+msgid "Thai"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:40
+msgid "Turkish"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:41
+msgid "Vietnamese"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:42
+msgid "Chinese (Simplified)"
+msgstr ""
+
+#: src/contexts/LanguageContext.tsx:43
+msgid "Chinese (Traditional)"
+msgstr ""
+
+#: src/defaults/dashboardItems.tsx:15
+msgid "Subscribed Parts"
+msgstr ""
+
+#: src/defaults/dashboardItems.tsx:22
+msgid "Subscribed Categories"
+msgstr ""
+
+#: src/defaults/dashboardItems.tsx:29
+msgid "Latest Parts"
+msgstr ""
+
+#: src/defaults/dashboardItems.tsx:36
+msgid "BOM Waiting Validation"
+msgstr ""
+
+#: src/defaults/dashboardItems.tsx:43
+msgid "Recently Updated"
+msgstr ""
+
+#: src/defaults/dashboardItems.tsx:57
+msgid "Depleted Stock"
+msgstr ""
+
+#: src/defaults/dashboardItems.tsx:64
+msgid "Required for Build Orders"
+msgstr ""
+
+#: src/defaults/dashboardItems.tsx:71
+msgid "Expired Stock"
+msgstr ""
+
+#: src/defaults/dashboardItems.tsx:78
+msgid "Stale Stock"
+msgstr ""
+
+#: src/defaults/dashboardItems.tsx:85
+msgid "Build Orders In Progress"
+msgstr ""
+
+#: src/defaults/dashboardItems.tsx:92
+msgid "Overdue Build Orders"
+msgstr ""
+
+#: src/defaults/dashboardItems.tsx:99
+msgid "Outstanding Purchase Orders"
+msgstr ""
+
+#: src/defaults/dashboardItems.tsx:106
+msgid "Overdue Purchase Orders"
+msgstr ""
+
+#: src/defaults/dashboardItems.tsx:113
+msgid "Outstanding Sales Orders"
+msgstr ""
+
+#: src/defaults/dashboardItems.tsx:120
+msgid "Overdue Sales Orders"
+msgstr ""
+
+#: src/defaults/dashboardItems.tsx:127
+msgid "Current News"
+msgstr ""
+
+#: src/defaults/links.tsx:15
+msgid "GitHub"
+msgstr ""
+
+#: src/defaults/links.tsx:20
+msgid "Demo"
+msgstr ""
+
+#: src/defaults/links.tsx:25
+#: src/defaults/menuItems.tsx:9
+msgid "Home"
+msgstr ""
+
+#: src/defaults/links.tsx:26
+#: src/defaults/menuItems.tsx:28
+#: src/pages/Index/Dashboard.tsx:19
+#: src/pages/Index/Settings/UserSettings.tsx:41
+msgid "Dashboard"
+msgstr ""
+
+#: src/defaults/links.tsx:30
+#: src/defaults/menuItems.tsx:48
+#: src/pages/company/ManufacturerDetail.tsx:9
+#: src/pages/company/SupplierDetail.tsx:9
+#: src/pages/purchasing/PurchaseOrderDetail.tsx:134
+#: src/pages/purchasing/PurchasingIndex.tsx:53
+msgid "Purchasing"
+msgstr ""
+
+#: src/defaults/links.tsx:31
+#: src/defaults/menuItems.tsx:53
+#: src/pages/company/CustomerDetail.tsx:9
+#: src/pages/sales/ReturnOrderDetail.tsx:71
+#: src/pages/sales/SalesIndex.tsx:45
+#: src/pages/sales/SalesOrderDetail.tsx:99
+msgid "Sales"
+msgstr ""
+
+#: src/defaults/links.tsx:34
+#: src/defaults/menuItems.tsx:71
+#: src/pages/Index/Playground.tsx:171
+msgid "Playground"
+msgstr ""
+
+#: src/defaults/links.tsx:48
+msgid "Getting Started"
+msgstr ""
+
+#: src/defaults/links.tsx:49
+msgid "Getting started with InvenTree"
+msgstr ""
+
+#: src/defaults/links.tsx:55
+msgid "API"
+msgstr ""
+
+#: src/defaults/links.tsx:56
+msgid "InvenTree API documentation"
+msgstr ""
+
+#: src/defaults/links.tsx:61
+msgid "Developer Manual"
+msgstr ""
+
+#: src/defaults/links.tsx:62
+msgid "InvenTree developer manual"
+msgstr ""
+
+#: src/defaults/links.tsx:67
+msgid "FAQ"
+msgstr ""
+
+#: src/defaults/links.tsx:68
+msgid "Frequently asked questions"
+msgstr ""
+
+#: src/defaults/links.tsx:76
+#: src/defaults/links.tsx:95
+msgid "System Information"
+msgstr ""
+
+#: src/defaults/links.tsx:85
+#: src/defaults/links.tsx:101
+msgid "About InvenTree"
+msgstr ""
+
+#: src/defaults/links.tsx:96
+msgid "About this Inventree instance"
+msgstr ""
+
+#: src/defaults/links.tsx:102
+msgid "About the InvenTree org"
+msgstr ""
+
+#: src/defaults/links.tsx:107
+msgid "Licenses"
+msgstr ""
+
+#: src/defaults/links.tsx:108
+msgid "Licenses for packages used by InvenTree"
+msgstr ""
+
+#: src/defaults/menuItems.tsx:17
+msgid "User attributes and design settings."
+msgstr ""
+
+#: src/defaults/menuItems.tsx:23
+msgid "View for interactive scanning and multiple actions."
+msgstr ""
+
+#: src/forms/AttachmentForms.tsx:57
+msgid "Add File"
+msgstr ""
+
+#: src/forms/AttachmentForms.tsx:57
+msgid "Add Link"
+msgstr ""
+
+#: src/forms/AttachmentForms.tsx:58
+msgid "File added"
+msgstr ""
+
+#: src/forms/AttachmentForms.tsx:58
+msgid "Link added"
+msgstr ""
+
+#: src/forms/AttachmentForms.tsx:99
+msgid "Edit File"
+msgstr ""
+
+#: src/forms/AttachmentForms.tsx:99
+msgid "Edit Link"
+msgstr ""
+
+#: src/forms/AttachmentForms.tsx:100
+msgid "File updated"
+msgstr ""
+
+#: src/forms/AttachmentForms.tsx:100
+msgid "Link updated"
+msgstr ""
+
+#: src/forms/AttachmentForms.tsx:124
+msgid "Delete Attachment"
+msgstr ""
+
+#: src/forms/AttachmentForms.tsx:125
+msgid "Attachment deleted"
+msgstr ""
+
+#: src/forms/AttachmentForms.tsx:128
+msgid "Are you sure you want to delete this attachment?"
+msgstr ""
+
+#: src/forms/CompanyForms.tsx:120
+msgid "Edit Company"
+msgstr ""
+
+#: src/forms/CompanyForms.tsx:124
+msgid "Company updated"
+msgstr ""
+
+#: src/forms/PartForms.tsx:106
+msgid "Create Part"
+msgstr ""
+
+#: src/forms/PartForms.tsx:108
+msgid "Part created"
+msgstr ""
+
+#: src/forms/PartForms.tsx:125
+msgid "Edit Part"
+msgstr ""
+
+#: src/forms/PartForms.tsx:129
+msgid "Part updated"
+msgstr ""
+
+#: src/forms/PartForms.tsx:140
+msgid "Parent part category"
+msgstr ""
+
+#: src/forms/StockForms.tsx:44
+msgid "Add given quantity as packs instead of individual items"
+msgstr ""
+
+#: src/forms/StockForms.tsx:55
+msgid "Enter initial quantity for this stock item"
+msgstr ""
+
+#: src/forms/StockForms.tsx:60
+msgid "Serial Numbers"
+msgstr ""
+
+#: src/forms/StockForms.tsx:61
+msgid "Enter serial numbers for new stock (or leave blank)"
+msgstr ""
+
+#: src/forms/StockForms.tsx:110
+msgid "Create Stock Item"
+msgstr ""
+
+#: src/forms/StockForms.tsx:131
+msgid "Edit Stock Item"
+msgstr ""
+
+#: src/forms/StockForms.tsx:132
+msgid "Stock item updated"
+msgstr ""
+
+#: src/functions/auth.tsx:34
+msgid "Error fetching token from server."
+msgstr ""
+
+#: src/functions/auth.tsx:57
+msgid "Logout successful"
+msgstr ""
+
+#: src/functions/auth.tsx:58
+msgid "See you soon."
+msgstr ""
+
+#: src/functions/auth.tsx:103
+msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
+msgstr ""
+
+#: src/functions/auth.tsx:110
+#: src/pages/Auth/Set-Password.tsx:39
+msgid "Reset failed"
+msgstr ""
+
+#: src/functions/auth.tsx:134
+msgid "Already logged in"
+msgstr ""
+
+#: src/functions/auth.tsx:135
+msgid "Found an existing login - using it to log you in."
+msgstr ""
+
+#: src/functions/forms.tsx:50
+msgid "Form method not provided"
+msgstr ""
+
+#: src/functions/forms.tsx:59
+msgid "Response did not contain action data"
+msgstr ""
+
+#: src/functions/forms.tsx:188
+msgid "Invalid Form"
+msgstr ""
+
+#: src/functions/forms.tsx:189
+msgid "method parameter not supplied"
+msgstr ""
+
+#: src/functions/notifications.tsx:9
+msgid "Not implemented"
+msgstr ""
+
+#: src/functions/notifications.tsx:10
+msgid "This feature is not yet implemented"
+msgstr ""
+
+#: src/functions/notifications.tsx:20
+msgid "Permission denied"
+msgstr ""
+
+#: src/functions/notifications.tsx:21
+msgid "You do not have permission to perform this action"
+msgstr ""
+
+#: src/functions/notifications.tsx:32
+msgid "Invalid Return Code"
+msgstr ""
+
+#: src/functions/notifications.tsx:33
+msgid "Server returned status {returnCode}"
+msgstr ""
+
+#: src/pages/Auth/Logged-In.tsx:22
+msgid "Checking if you are already logged in"
+msgstr ""
+
+#: src/pages/Auth/Login.tsx:25
+#: src/pages/Index/Scan.tsx:318
+msgid "No selection"
+msgstr ""
+
+#: src/pages/Auth/Reset.tsx:41
+#: src/pages/Auth/Set-Password.tsx:112
+msgid "Send mail"
+msgstr ""
+
+#: src/pages/Auth/Set-Password.tsx:30
+msgid "Token invalid"
+msgstr ""
+
+#: src/pages/Auth/Set-Password.tsx:31
+msgid "You need to provide a valid token to set a new password. Check your inbox for a reset link."
+msgstr ""
+
+#: src/pages/Auth/Set-Password.tsx:49
+msgid "No token provided"
+msgstr ""
+
+#: src/pages/Auth/Set-Password.tsx:50
+msgid "You need to provide a token to set a new password. Check your inbox for a reset link."
+msgstr ""
+
+#: src/pages/Auth/Set-Password.tsx:73
+msgid "Password set"
+msgstr ""
+
+#: src/pages/Auth/Set-Password.tsx:74
+msgid "The password was set successfully. You can now login with your new password"
+msgstr ""
+
+#: src/pages/Auth/Set-Password.tsx:101
+msgid "Set new password"
+msgstr ""
+
+#: src/pages/ErrorPage.tsx:17
+msgid "Error: {0}"
+msgstr ""
+
+#: src/pages/ErrorPage.tsx:28
+msgid "Sorry, an unexpected error has occurred."
+msgstr ""
+
+#: src/pages/Index/Dashboard.tsx:22
+msgid "Autoupdate"
+msgstr ""
+
+#: src/pages/Index/Dashboard.tsx:26
+msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page."
+msgstr ""
+
+#: src/pages/Index/Home.tsx:58
+msgid "Welcome to your Dashboard{0}"
+msgstr ""
+
+#: src/pages/Index/Playground.tsx:176
+msgid "This page is a showcase for the possibilities of Platform UI."
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:214
+msgid "Manual input"
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:215
+msgid "Image Barcode"
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:245
+msgid "Selected elements are not known"
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:252
+msgid "Multiple object types selected"
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:259
+msgid "Actions for {0}"
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:262
+#: src/pages/stock/StockDetail.tsx:168
+msgid "Count"
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:276
+msgid "Scan Page"
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:279
+msgid "This page can be used for continuously scanning items and taking actions on them."
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:294
+msgid "Select the input method you want to use to scan items."
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:296
+msgid "Input"
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:303
+msgid "Select input method"
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:304
+msgid "Nothing found"
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:312
+msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently."
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:314
+msgid "Action"
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:323
+msgid "{0} items selected"
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:326
+msgid "General Actions"
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:339
+msgid "Lookup part"
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:346
+msgid "Open Link"
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:361
+msgid "History is locally kept in this browser."
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:362
+msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area."
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:364
+#: src/pages/Notifications.tsx:56
+msgid "History"
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:430
+msgid "No history"
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:449
+msgid "Item"
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:452
+msgid "Type"
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:455
+msgid "Source"
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:458
+msgid "Scanned at"
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:510
+msgid "Enter item serial or data"
+msgstr ""
+
+#: src/pages/Index/Scan.tsx:522
+msgid "Add dummy item"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32
+msgid "Account Details"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58
+msgid "First name: {0}"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:61
+msgid "Last name: {0}"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:39
+msgid "Use pseudo language"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53
+msgid "Single Sign On Accounts"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60
+#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78
+msgid "Not enabled"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63
+msgid "Single Sign On is not enabled for this server"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67
+msgid "Multifactor"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81
+msgid "Multifactor authentication is not configured for your account"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131
+msgid "The following email addresses are associated with your account:"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148
+msgid "Verified"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152
+msgid "Unverified"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165
+msgid "Add Email Address"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168
+msgid "E-Mail"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169
+msgid "E-Mail address"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179
+msgid "Make Primary"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182
+msgid "Re-send Verification"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185
+#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291
+#: src/pages/stock/StockDetail.tsx:178
+msgid "Remove"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191
+msgid "Add Email"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255
+msgid "Provider has not been configured"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265
+msgid "Not configured"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268
+msgid "There are no social network accounts connected to this account."
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278
+msgid "You can sign in to your account using any of the following third party accounts"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:68
+msgid "bars"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:69
+msgid "oval"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:70
+msgid "dots"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81
+msgid "Theme"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87
+msgid "Primary color"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100
+msgid "White color"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108
+msgid "Black color"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116
+msgid "Border Radius"
+msgstr ""
+
+#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132
+msgid "Loader"
+msgstr ""
+
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:64
+msgid "Custom Units"
+msgstr ""
+
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:70
+msgid "Part Parameters"
+msgstr ""
+
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:86
+msgid "Quick Actions"
+msgstr ""
+
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:91
+msgid "Add a new user"
+msgstr ""
+
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:110
+msgid "Advanced Options"
+msgstr ""
+
+#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:23
+msgid "External plugins are not enabled for this InvenTree installation."
+msgstr ""
+
+#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33
+msgid "Plugin Error Stack"
+msgstr ""
+
+#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:40
+msgid "Plugin Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30
+msgid "Select settings relevant for user lifecycle. More available in"
+msgstr ""
+
+#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:35
+msgid "System settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:65
+msgid "Login"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:87
+msgid "Barcodes"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/part/PartDetail.tsx:151
+msgid "Pricing"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+msgid "Exchange Rates"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:143
+msgid "Labels"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:149
+#: src/pages/Index/Settings/UserSettings.tsx:99
+msgid "Reporting"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:223
+#: src/pages/part/PartDetail.tsx:199
+msgid "Stocktake"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:228
+#: src/pages/build/BuildDetail.tsx:260
+#: src/pages/build/BuildIndex.tsx:36
+#: src/pages/part/PartDetail.tsx:130
+#: src/pages/sales/SalesOrderDetail.tsx:61
+msgid "Build Orders"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:270
+msgid "Switch to User Setting"
+msgstr ""
+
+#: src/pages/Index/Settings/UserSettings.tsx:29
+msgid "Account"
+msgstr ""
+
+#: src/pages/Index/Settings/UserSettings.tsx:35
+msgid "Security"
+msgstr ""
+
+#: src/pages/Index/Settings/UserSettings.tsx:46
+msgid "Display Options"
+msgstr ""
+
+#: src/pages/Index/Settings/UserSettings.tsx:115
+msgid "Account Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/UserSettings.tsx:119
+msgid "Switch to System Setting"
+msgstr ""
+
+#: src/pages/NotFound.tsx:17
+msgid "Not Found"
+msgstr ""
+
+#: src/pages/NotFound.tsx:20
+msgid "Sorry, this page is not known or was moved."
+msgstr ""
+
+#: src/pages/NotFound.tsx:27
+msgid "Go to the start page"
+msgstr ""
+
+#: src/pages/Notifications.tsx:64
+msgid "Mark as unread"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:71
+msgid "Base Part"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:79
+msgid "Build Status"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:100
+msgid "Build Details"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:106
+msgid "Allocate Stock"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:112
+msgid "Incomplete Outputs"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:118
+msgid "Completed Outputs"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:131
+msgid "Consumed Stock"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:143
+msgid "Child Build Orders"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:155
+#: src/pages/company/CompanyDetail.tsx:144
+#: src/pages/part/PartDetail.tsx:216
+#: src/pages/purchasing/PurchaseOrderDetail.tsx:78
+#: src/pages/sales/ReturnOrderDetail.tsx:38
+#: src/pages/sales/SalesOrderDetail.tsx:66
+#: src/pages/stock/StockDetail.tsx:108
+msgid "Attachments"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:190
+msgid "Edit Build Order"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:192
+msgid "Build Order updated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:218
+msgid "Reporting Actions"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:223
+msgid "Report"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:224
+msgid "Print build report"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:230
+msgid "Build Order Actions"
+msgstr ""
+
+#: src/pages/build/BuildIndex.tsx:21
+msgid "Add Build Order"
+msgstr ""
+
+#: src/pages/build/BuildIndex.tsx:23
+msgid "Build order created"
+msgstr ""
+
+#: src/pages/build/BuildIndex.tsx:39
+msgid "New Build Order"
+msgstr ""
+
+#: src/pages/company/CompanyDetail.tsx:73
+#: src/pages/part/PartDetail.tsx:87
+#: src/pages/stock/StockDetail.tsx:69
+msgid "Details"
+msgstr ""
+
+#: src/pages/company/CompanyDetail.tsx:78
+msgid "Manufactured Parts"
+msgstr ""
+
+#: src/pages/company/CompanyDetail.tsx:84
+msgid "Supplied Parts"
+msgstr ""
+
+#: src/pages/company/CompanyDetail.tsx:126
+msgid "Assigned Stock"
+msgstr ""
+
+#: src/pages/company/CompanyDetail.tsx:173
+msgid "Company Actions"
+msgstr ""
+
+#: src/pages/part/CategoryDetail.tsx:72
+#: src/pages/part/PartDetail.tsx:92
+msgid "Parameters"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:110
+msgid "Variants"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:117
+#: src/pages/stock/StockDetail.tsx:81
+msgid "Allocations"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:123
+msgid "Bill of Materials"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:144
+msgid "Used In"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:156
+#: src/pages/purchasing/PurchasingIndex.tsx:38
+msgid "Manufacturers"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:162
+#: src/pages/purchasing/PurchasingIndex.tsx:27
+msgid "Suppliers"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:194
+msgid "Scheduling"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:204
+msgid "Test Templates"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:210
+msgid "Related Parts"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:278
+msgid "Stock Actions"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:283
+msgid "Count Stock"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:284
+msgid "Count part stock"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:288
+msgid "Transfer Stock"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:289
+msgid "Transfer part stock"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:295
+msgid "Part Actions"
+msgstr ""
+
+#: src/pages/purchasing/PurchaseOrderDetail.tsx:55
+#: src/pages/sales/ReturnOrderDetail.tsx:33
+#: src/pages/sales/SalesOrderDetail.tsx:41
+msgid "Order Details"
+msgstr ""
+
+#: src/pages/purchasing/PurchaseOrderDetail.tsx:66
+msgid "Received Stock"
+msgstr ""
+
+#: src/pages/purchasing/PurchaseOrderDetail.tsx:119
+msgid "Order Actions"
+msgstr ""
+
+#: src/pages/sales/SalesIndex.tsx:33
+msgid "Customers"
+msgstr ""
+
+#: src/pages/sales/SalesOrderDetail.tsx:51
+msgid "Pending Shipments"
+msgstr ""
+
+#: src/pages/sales/SalesOrderDetail.tsx:56
+msgid "Completed Shipments"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:75
+msgid "Stock Tracking"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:89
+msgid "Test Data"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:95
+msgid "Installed Items"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:102
+msgid "Child Items"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:164
+msgid "Stock Operations"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:169
+msgid "Count stock"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:173
+msgid "Add"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:174
+msgid "Add stock"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:179
+msgid "Remove stock"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:183
+msgid "Transfer"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:184
+msgid "Transfer stock"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:196
+msgid "Duplicate stock item"
+msgstr ""
+
+#: src/views/MobileAppView.tsx:14
+msgid "Mobile viewport detected"
+msgstr ""
+
+#: src/views/MobileAppView.tsx:17
+msgid "Platform UI is optimized for Tablets and Desktops, you can use the official app for a mobile experience."
+msgstr ""
+
+#: src/views/MobileAppView.tsx:23
+msgid "Read the docs"
+msgstr ""
diff --git a/src/frontend/src/locales/sv/messages.po b/src/frontend/src/locales/sv/messages.po
index aba27c7abcaa..c76f7e5680d7 100644
--- a/src/frontend/src/locales/sv/messages.po
+++ b/src/frontend/src/locales/sv/messages.po
@@ -51,7 +51,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr "Redigera"
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr "Läs mer"
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr "Okänt fel"
@@ -1126,51 +1126,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr "Inga resultat hittades"
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr "Felaktig begäran"
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr "Ej behörig"
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr "Otillåten"
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr "Hittades inte"
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr "Streckkods åtgärder"
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr "Skriv ut åtgärder"
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr "Uppdatera data"
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr "Tabellfilter"
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr "Åtgärder"
@@ -1649,39 +1649,41 @@ msgstr ""
msgid "Units"
msgstr "Enheter"
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
@@ -4255,4 +4257,3 @@ msgstr "Plattform UI är optimerad för surfplattor och stationära datorer, kan
#: src/views/MobileAppView.tsx:23
msgid "Read the docs"
msgstr "Läs dokumenten"
-
diff --git a/src/frontend/src/locales/th/messages.po b/src/frontend/src/locales/th/messages.po
index 45bb34561e42..3133348d2b4e 100644
--- a/src/frontend/src/locales/th/messages.po
+++ b/src/frontend/src/locales/th/messages.po
@@ -51,7 +51,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr ""
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr ""
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr ""
@@ -1126,51 +1126,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr ""
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr ""
@@ -1649,39 +1649,41 @@ msgstr ""
msgid "Units"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
@@ -4255,4 +4257,3 @@ msgstr ""
#: src/views/MobileAppView.tsx:23
msgid "Read the docs"
msgstr ""
-
diff --git a/src/frontend/src/locales/tr/messages.po b/src/frontend/src/locales/tr/messages.po
index 69c41dab53bb..1434036aeb1d 100644
--- a/src/frontend/src/locales/tr/messages.po
+++ b/src/frontend/src/locales/tr/messages.po
@@ -51,7 +51,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr "Durum: <0>worker0> ({0}), <1>eklenti1>{1}"
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr ""
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr "Devamını Oku"
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr "Bilinmeyen hata"
@@ -1126,51 +1126,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr "Hiç kayıt bulunamadı"
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr "Hatalı istek"
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr "Yetkisiz"
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr "Yasaklı"
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr "Bulunamadı"
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr "Barkod işlemleri"
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr "Yazdırma işlemleri"
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr "Veriyi yenile"
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr "Tablo filtreleri"
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr "Eylemler"
@@ -1649,39 +1649,41 @@ msgstr ""
msgid "Units"
msgstr "Birim"
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
@@ -4255,4 +4257,3 @@ msgstr ""
#: src/views/MobileAppView.tsx:23
msgid "Read the docs"
msgstr "Belgeleri okuyun"
-
diff --git a/src/frontend/src/locales/vi/messages.po b/src/frontend/src/locales/vi/messages.po
index 307ba00f9783..fdfa894b3932 100644
--- a/src/frontend/src/locales/vi/messages.po
+++ b/src/frontend/src/locales/vi/messages.po
@@ -51,7 +51,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -220,7 +220,7 @@ msgstr "Trạng thái: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -280,7 +280,7 @@ msgid "Unlink custom barcode"
msgstr "Gỡ bỏ mã vạch tùy chỉnh"
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr "Sửa"
@@ -289,7 +289,7 @@ msgid "Delete item"
msgstr "Xoá mặt hàng"
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr "Nhân bản"
@@ -307,7 +307,7 @@ msgid "Read More"
msgstr "Xem thêm"
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr "Lỗi không xác định"
@@ -1126,51 +1126,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr "Select from the available filters"
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr "Không tìm thấy biểu ghi"
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr "Yêu cầu không hợp lệ"
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr "Chưa cấp quyền"
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr "Bị cấm"
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr "Không tìm thấy"
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr "Chức năng mã vạch"
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr "Chức năng in ấn"
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr "Làm mới dữ liệu"
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr "Bộ lọc bảng"
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr "Chức năng"
@@ -1649,39 +1649,41 @@ msgstr "Tham số"
msgid "Units"
msgstr "Đơn vị"
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr "Sửa tham số phụ kiện"
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr "Đã cập nhật các tham số phụ kiện"
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr "Xóa tham số phụ kiện"
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr "Đã xóa tham số phụ kiện"
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr "Bạn có chắc chắn muốn xóa tham số này không?"
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr "Thêm tham số phụ kiện"
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr "Đã thêm tham số phụ kiện"
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr "Bao gồm các biến thể"
@@ -4255,4 +4257,3 @@ msgstr "Giao diện nền tảng được tối ưu cho máy tính bảng và m
#: src/views/MobileAppView.tsx:23
msgid "Read the docs"
msgstr "Đọc tài liệu"
-
diff --git a/src/frontend/src/locales/zh-hans/messages.po b/src/frontend/src/locales/zh-hans/messages.po
index d148cae770dc..142e98bcd78c 100644
--- a/src/frontend/src/locales/zh-hans/messages.po
+++ b/src/frontend/src/locales/zh-hans/messages.po
@@ -46,7 +46,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -196,7 +196,7 @@ msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -256,7 +256,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr ""
@@ -265,7 +265,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -283,7 +283,7 @@ msgid "Read More"
msgstr ""
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr ""
@@ -1094,51 +1094,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr ""
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr ""
@@ -1617,39 +1617,41 @@ msgstr ""
msgid "Units"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""
diff --git a/src/frontend/src/locales/zh-hant/messages.po b/src/frontend/src/locales/zh-hant/messages.po
index 62cf488a1ab9..de20927cb95a 100644
--- a/src/frontend/src/locales/zh-hant/messages.po
+++ b/src/frontend/src/locales/zh-hant/messages.po
@@ -46,7 +46,7 @@ msgstr ""
#: src/components/forms/ApiForm.tsx:481
#: src/components/items/ActionDropdown.tsx:173
-#: src/components/tables/RowActions.tsx:61
+#: src/components/tables/RowActions.tsx:70
#: src/functions/forms.tsx:306
#: src/hooks/UseForm.tsx:117
#: src/pages/Index/Scan.tsx:332
@@ -196,7 +196,7 @@ msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:279
#: src/components/nav/SearchDrawer.tsx:412
-#: src/components/tables/InvenTreeTable.tsx:350
+#: src/components/tables/InvenTreeTable.tsx:331
#: src/components/tables/plugin/PluginListTable.tsx:364
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -256,7 +256,7 @@ msgid "Unlink custom barcode"
msgstr ""
#: src/components/items/ActionDropdown.tsx:154
-#: src/components/tables/RowActions.tsx:44
+#: src/components/tables/RowActions.tsx:50
msgid "Edit"
msgstr ""
@@ -265,7 +265,7 @@ msgid "Delete item"
msgstr ""
#: src/components/items/ActionDropdown.tsx:192
-#: src/components/tables/RowActions.tsx:27
+#: src/components/tables/RowActions.tsx:30
#: src/pages/stock/StockDetail.tsx:195
msgid "Duplicate"
msgstr ""
@@ -283,7 +283,7 @@ msgid "Read More"
msgstr ""
#: src/components/items/ErrorItem.tsx:5
-#: src/components/tables/InvenTreeTable.tsx:342
+#: src/components/tables/InvenTreeTable.tsx:323
msgid "Unknown error"
msgstr ""
@@ -1094,51 +1094,51 @@ msgstr ""
#~ msgid "Select from the available filters"
#~ msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:72
-#: src/components/tables/InvenTreeTable.tsx:286
-#: src/components/tables/InvenTreeTable.tsx:307
+#: src/components/tables/InvenTreeTable.tsx:71
+#: src/components/tables/InvenTreeTable.tsx:267
+#: src/components/tables/InvenTreeTable.tsx:288
msgid "No records found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:321
+#: src/components/tables/InvenTreeTable.tsx:302
msgid "Server returned incorrect data type"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:329
+#: src/components/tables/InvenTreeTable.tsx:310
msgid "Bad request"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:332
+#: src/components/tables/InvenTreeTable.tsx:313
msgid "Unauthorized"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:335
+#: src/components/tables/InvenTreeTable.tsx:316
msgid "Forbidden"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:338
+#: src/components/tables/InvenTreeTable.tsx:319
msgid "Not found"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:393
-#: src/components/tables/InvenTreeTable.tsx:394
+#: src/components/tables/InvenTreeTable.tsx:374
+#: src/components/tables/InvenTreeTable.tsx:375
msgid "Barcode actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:402
-#: src/components/tables/InvenTreeTable.tsx:403
+#: src/components/tables/InvenTreeTable.tsx:383
+#: src/components/tables/InvenTreeTable.tsx:384
msgid "Print actions"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:417
+#: src/components/tables/InvenTreeTable.tsx:400
msgid "Refresh data"
msgstr ""
-#: src/components/tables/InvenTreeTable.tsx:436
+#: src/components/tables/InvenTreeTable.tsx:419
msgid "Table filters"
msgstr ""
-#: src/components/tables/RowActions.tsx:140
+#: src/components/tables/RowActions.tsx:149
msgid "Actions"
msgstr ""
@@ -1617,39 +1617,41 @@ msgstr ""
msgid "Units"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:118
+#: src/components/tables/part/PartParameterTable.tsx:113
+#: src/components/tables/part/PartParameterTable.tsx:119
msgid "Edit Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:126
+#: src/components/tables/part/PartParameterTable.tsx:127
msgid "Part parameter updated"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:140
+#: src/components/tables/part/PartParameterTable.tsx:136
+#: src/components/tables/part/PartParameterTable.tsx:142
msgid "Delete Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:141
+#: src/components/tables/part/PartParameterTable.tsx:143
msgid "Part parameter deleted"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:143
+#: src/components/tables/part/PartParameterTable.tsx:145
msgid "Are you sure you want to remove this parameter?"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:161
+#: src/components/tables/part/PartParameterTable.tsx:163
msgid "Add Part Parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:170
+#: src/components/tables/part/PartParameterTable.tsx:172
msgid "Part parameter added"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:181
+#: src/components/tables/part/PartParameterTable.tsx:183
msgid "Add parameter"
msgstr ""
-#: src/components/tables/part/PartParameterTable.tsx:198
+#: src/components/tables/part/PartParameterTable.tsx:200
#: src/components/tables/stock/StockItemTable.tsx:293
msgid "Include Variants"
msgstr ""